大多数BLAS Level 1 API都可以使用Fortran 9x+矢量化赋值和内部过程直接编写。
假设您正在使用现代优化编译器,如Intel Fortran,并且正确的针对特定目标的编译器优化选项,那么使用BLAS级别1过程而不是Intel MKL或其他快速BLAS实现是否对性能有任何好处?
如果有,当这些好处出现时,典型的向量大小是多少?
发布于 2012-10-17 06:51:32
那得看情况。我们之前已经用英特尔编译器对此进行了测试,并得到了令人惊讶的结果。例如,Fortran与BLAS实现的DOT_PRODUCT
根据问题的大小给出了不同的趋势。随着数组中元素的数量变得更大,BLAS变得比内在的更好。但对于较小的问题规模,内部运算要快得多。
对于我们的用例,我们实际测量了使一个比另一个更好所需的截止大小,并实际使用if语句来决定调用哪一个。我不能分享这些结果,但我鼓励您自己测试一下。使用BLAS仍然有好处。
https://stackoverflow.com/questions/12924573
复制相似问题