我想知道NVIDIA的cuBLAS库。有人有经验吗?例如,如果我使用BLAS编写C程序,是否可以将对BLAS的调用替换为对cuBLAS的调用?甚至更好地实现一种让用户在运行时选择的机制?
如果我将Boost提供的BLAS库与C++一起使用怎么办?
最佳答案
janneb的答案不正确,cuBLAS是,而不是,是CPU BLAS的直接替代品。它假定数据已经在设备上,并且功能签名具有一个额外的参数来跟踪cuBLAS上下文。
但是,CUDA 6.0中引入了一个名为NVBLAS的新库,该库正是提供了这种“插入”功能。它拦截Level3 BLAS调用(GEMM,TRSV等)并将其自动发送到GPU,从而通过GPU上的计算有效地平铺PCIE传输。
这里有一些信息:https://developer.nvidia.com/cublasxt,并且CUDA 6.0现已可供CUDA注册的开发人员使用。
CUDA 6.0向公众发布后,完整的文档将在线发布。