BLAS 1级程序是否仍然适用于现代fortran编译器?

abb*_*bot 8 fortran blas

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

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

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

tpg*_*114 9

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

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