8

大多数BLAS 1 级 API都可以使用 Fortran 9x+ 矢量化分配和内在过程直接编写。

假设您使用的是现代优化编译器(如Intel Fortran)和正确的特定于目标的编译器优化选项,那么使用 BLAS 1 级过程是否有任何性能优势,例如来自英特尔 MKL或其他快速 BLAS 实施?

如果有,当这些好处出现时,典型的向量大小是多少?

4

1 回答 1

9

这取决于。我们之前使用英特尔编译器对此进行了测试,结果令人惊讶。例如,DOT_PRODUCTFortran 与 BLAS 实现根据问题大小给出了不同的趋势。随着数组中元素的数量越来越多,BLAS 变得比内在的更好。但是对于小问题,内在函数要快得多。

我们实际上为我们的用例测量了使一个比另一个更好所需的截止大小,并实际使用 if 语句来决定调用哪个。我不能分享这些结果,但我鼓励你自己测试一下。使用 BLAS 仍然有好处。

于 2012-10-16T22:51:31.850 回答