计算化学公社

 找回密码 Forget password
 注册 Register
Views: 5310|回复 Reply: 4
打印 Print 上一主题 Last thread 下一主题 Next thread

[综合交流] 关于numpy的einsum的各种变种和fortran/c++的blas的效率比较

[复制链接 Copy URL]

194

帖子

0

威望

3694

eV
积分
3888

Level 5 (御坂)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 scf 于 2021-7-10 11:35 编辑

numpy内置了一个叫einsum的张量缩并,也有人做过进一步优化 https://optimized-einsum.readthedocs.io/en/stable/ 或者调用mkl https://software.intel.com/conte ... with-intel-mkl.html

和c++/fortran自带的blas的效率对于量子化学里的张量缩并有没有比较系统的比较,包括gfortran和ifort的区别
https://stackoverflow.com/questi ... sing-blas-and-numpy
这里的结果争议略大
我比较过一点c++的boost, gfortran自带的lblas, openblas, ifort调用mkl,和einsum的各种变种,结果很复杂。


831

帖子

1

威望

7185

eV
积分
8036

Level 6 (一方通行)

2#
发表于 Post on 2021-7-10 12:30:02 | 只看该作者 Only view this author
本帖最后由 hebrewsnabla 于 2021-7-10 12:33 编辑

我的理解是,这些东西并不是同一类的库。MKL和各种blas是做矩阵运算的,至少主要是做这个。而einsum及其变体是做高阶张量缩并的,虽然他也能做矩阵乘矩阵,但是效率应该等于它调用的线性代数库。

这两类之间应该无法比较吧。
如果你要比较,应该是比较MKL和各种blas在矩阵运算上的区别,和比较einsum及其变体在高阶张量缩并上的差别。这两个问题差不多都有明确的答案。你要是拿MKL和einsum比,这我都不知道怎么比,他们不是干同一件事的啊

194

帖子

0

威望

3694

eV
积分
3888

Level 5 (御坂)

3#
 楼主 Author| 发表于 Post on 2021-7-10 13:06:45 | 只看该作者 Only view this author
高阶张量缩并也可以用blas做,比如 https://stackoverflow.com/questi ... -by-blas-in-fortran

831

帖子

1

威望

7185

eV
积分
8036

Level 6 (一方通行)

4#
发表于 Post on 2021-7-10 13:31:32 | 只看该作者 Only view this author
scf 发表于 2021-7-10 13:06
高阶张量缩并也可以用blas做,比如 https://stackoverflow.com/questions/66253618/how-to-speed-up-reshap ...

这个需要自己写程序,给比较增加了不确定性,而且每种缩并都得写一个,比较麻烦(

831

帖子

1

威望

7185

eV
积分
8036

Level 6 (一方通行)

5#
发表于 Post on 2021-7-10 13:40:47 | 只看该作者 Only view this author
本帖最后由 hebrewsnabla 于 2021-7-10 13:53 编辑

如果仅讨论“自动张量缩并”程序的话。
你可以看看这个 https://github.com/pyscf/pyscf/issues/835

有对numpy.einsum, pyscf.lib.einsum, 以及后者使用tblis加持的比较。

需要注意的是numpy.einsum默认的效率是很低的,需要optimize=True才行,可以达到和pyscf.lib.einsum, opt_einsum差不多的水平。不过pyscf里面常用的一些缩并还是pyscf.lib.einsum更快。

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
thanhtam + 3 GJ!

查看全部评分 View all ratings

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 23:57 , Processed in 0.188301 second(s), 22 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list