1

我有一个现有的 MFC 应用程序,它使用 CPU 优化的 BLAS 库进行矩阵计算。我有兴趣在我的项目中添加 CuBLAS 计算功能,但我有以下两个问题:

1) 我不确定我是否需要在此时指定我自己的 CUDA 内核、线程和块配置。如果是这样,您建议在修改算法时最关注架构的哪些部分?

2) 我对 (a) 在 Visual Studio 中使用程序中的 CuBLAS 功能创建一个新项目或 (b) 在现有 MFC 项目中集成 CuBLAS 功能感兴趣。但是,除了遵循这样的指南之外,我在配置 Visual Studio 项目以正确使用 CUDA SDK 时遇到问题,如果我试图将其与现有项目集成,这可能无法正常工作。您对此有何建议?

提前感谢您的评论。

4

1 回答 1

2

1) 如果您只是打算使用 CUBLAS,则无需费心编写自己的内核。CUBLAS 是内核和 C 包装器的集合,它们被打包到一个库中,并且被设计成可以很容易地从其他程序中调用。了解 CUDA 线程、块等的细节并不是使用 CUBLAS 的必要条件。

2) 由于不需要编写自己的内核,因此不需要使用 CUDA SDK 构建单独的 Visual Studio 项目。您只需要将现有项目中的函数调用调用到 cublas.dll(或用于静态链接的 cublas.lib)。CUDA Toolkit 的第 1 章CUBLAS_Library_2.3.pdf包含一个示例程序,展示了如何从 C 调用 CUBLAS。

于 2009-10-12T14:43:25.983 回答