|
|
本帖最后由 slxc920113 于 2025-10-13 15:00 编辑
最近手头的GPU资源比CPU资源富裕,于是萌生了用GPU做量化计算的念头,但是测试了一圈下来,只有字节跳动现在维护的GPU4PySCF对于GPU的性能发挥得最好,当然就笔者之前迁移Gaussian的优化器代码到BDF的经验来说,结构优化器还是Gaussian的最稳健(分支特别多)。于是就写了一个external的python脚本,调用GPU4PySCF进行能量和梯度的计算(也支持PySCF,但是如果用CPU的话相对于直接用Gaussian计算没有太大的收益)。
采用B3LYP泛函,def2-SVP基组简单测试比较了110原子体系的结构优化,分成了三种常见,纯Gaussian16的计算,纯GPU4PySCF的计算,Gaussian16优化器+GPU4PySCF的SCF计算
其中GPU4PySCF的SCF计算开启了密度拟合加速,另外GPU4PySCF应该还内置了交换积分的优化。
硬件方面,纯Gaussian16的优化计算采用了AMD Ryzen 9 7950X 16-Core Processor,16核,64G内存,实际计算使用了16核,60G的内存。
纯GPU4PySCF的计算采用了已经淘汰的i7-7900X CPU @ 3.30GHz,10核,64G内存,实际计算使用了1核,16G内存,1张V100-16G显卡。
Gaussian16优化器+GPU4PySCF的SCF计算同上。
采用Gaussian优化器的时候,步数基本上差不多,但是由于GPU4PySCF的单步计算快得多,即使加上了每次重启进程的开销,也比Gaussian快得多,所以最后的总时间基本上相差一倍。
用PySCF自带的优化器,需要的迭代步数要多不少,但是最后总的计算时间相差不大,因为没有重复启动进程的开销,也没有重复写入check文件和读取初猜的开销。
假设用户已经安装好pyscf和gpu4pyscf,调用的方法如下,需要写python脚本的绝对路径:
- %Chk=test.chk
- # External='python /home/wangc/work/external_pyscf.py --xc b3lyp --basis def2-svp --disp d3bj --gpu 0 --pcm IEFPCM --eps 20.7 --nofchk --verbose' opt(nomicro)
- molecule optimization with PySCF
- 0 1
- C 0.12947098 -0.04980080 -0.00169487
- H 0.48612541 -1.05861080 -0.00169487
- H 0.48614382 0.45459739 -0.87534637
- H -0.94052902 -0.04978761 -0.00169487
- C 0.64281320 0.67615548 1.25571010
- H 1.71281139 0.67444841 1.25668846
- H 0.28454424 0.17288748 2.12936030
- O 0.16829836 2.02513063 1.25440387
- H 0.48664213 2.47757316 2.03897573
复制代码
结构、电荷、自旋多重度等信息Gaussian会自动传递,不需要care。
external_pyscf.py 额外接受如下的参数:
--xc XC 泛函。默认:b3lyp
--basis BASIS 基组。默认:6-31g**
--disp DISP 色散校正。默认:d3bj
--gpu GPU_ID GPU设备ID,默认:0,不设置--gpu则使用pyscf进行计算,建议只用一张卡,多卡并行效率收益不大。
--maxscf MAX_SCF_CYCLE 最大SCF循环次数。默认:50
--grid GRID_LEVEL DFT网格级别。默认:3
--conv CONVERGE DFT能量收敛限。默认:1E-9
--ri 启用密度拟合加速
--nocheckpoint 不保存Check文件用于初猜
--chkdir DIR Check文件保存路径
--nofchk 不生成fchk文件到Gaussian的缓存路径
--verbose 输出详细的信息
PySCF的隐式溶剂模型API经常变,所以溶剂模型的代码可能会随着版本的更新失效
--solvent SOLVENT_NAME 溶剂名称
--eps VALUE 溶剂相对介电常数
--pcm SOLVENT_MODEL 隐式溶剂模型,默认:IEFPCM,支持CPCM和SMD
external_pyscf.py
(35.16 KB, 下载次数 Times of downloads: 10)
|
评分 Rate
-
查看全部评分 View all ratings
|