BLAS 级别 1 过程是否仍然与现代 fortran 编译器相关?



大多数BLAS Level 1 API都可以使用Fortran 9x+矢量化赋值和内部过程直接编写。

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新