大多数BLAS Level 1 API可以使用Fortran 9x +矢量化赋值和内部过程直接编写.
假设您正在使用现代优化编译器(如英特尔Fortran)以及正确的特定于目标的编译器优化选项,那么使用BLAS 1级程序是否有任何性能优势,例如英特尔MKL或其他快速BLAS实现?
如果有,那么当这些好处出现时,典型的矢量大小是多少?
这取决于.我们之前使用英特尔编译器对此进行了测试,结果令人惊讶.例如,DOT_PRODUCT
Fortran与BLAS实现根据问题大小给出了不同的趋势.随着阵列中元素数量的增加,BLAS变得比内在更好.但对于小问题规模,内在性要快得多.
我们实际上测量了我们的用例,使得一个比另一个更好的截止大小,并实际使用if语句来决定调用哪个.我不能分享这些结果,但我鼓励你自己测试一下.使用BLAS仍然有好处.
归档时间: |
|
查看次数: |
411 次 |
最近记录: |