在C / C ++中是否有BLAS的参考级实现?


11

netlib BLAS实施是一个很好的参考,大多数未进行优化且有据可查(例如zgemm)。但是,它在Fortran 77中使用,这使那些接受过更现代编程编程的人无法使用。在C / C ++中是否有BLAS的参考级实现(如netlib)?

Answers:


10

您是否看过GNU科学图书馆的 实现?我发现源代码具有足够的可读性,并且例程有充分的文档记录。


在我看来很好。文档有点缺乏,但是变量名的选择足够好,我认为它很清楚。我可能会在netlib BLAS例程的开头添加注释。您到底对什么有疑问?您有其他选择吗?
Max Hutchinson

6

BLAS的一种著名的C语言实现是ATLAS。有用的功能包括:

  1. 代数例程既实现了简单的C语言,又实现了针对多种体系结构和变体的高度优化的汇编程序辅助版本。
  2. 该构建系统具有“自动调谐器”功能,该功能可以编译ATLAS库的多个变体,以确定哪个将是给定机器上最快的。

http://math-atlas.sourceforge.net/


我看着ATLAS,但是错过了。引用实现的路径是“ src / blas / reference”,在类型字符和例程名称之间插入“ ref”,并附加字符参数。
Max Hutchinson




-1

我们目前正在开发一个大规模开放式在线课程“ LAFF-On-Performance Computing”,该课程以dgemm为例,通过一个并行度来指导不同的并行化级别:指令级,OpenMP,MPI。

这不是BLAS的参考实现,而是有关如何对BLAS进行编码(以提高性能)的参考。要随时了解情况,请访问www.ulaff.net

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.