小编Vic*_*ani的帖子

是否可以从 CUDA 10.1 内核调用 cuBLAS 或 cuBLASLt 函数?

关于 CUDA 10.1

我正在对几何网格进行一些计算,并在网格的每个面进行大量独立计算。我运行一个 CUDA 内核来计算每个面。

计算涉及一些矩阵乘法,因此我想使用 cuBLAS 或 cuBLASLt 来加快速度。由于我需要进行许多矩阵乘法(至少每个面几次),我想直接在内核中进行。这可能吗?

cuBLAS 或 cuBLASLt 似乎不允许您从内核(__global__)代码调用它们的函数。我从 Visual Studio 收到以下错误:

“不允许从 __device__ 函数调用 __host__ 函数”

有一些旧的答案(Could a CUDA kernel call a cublas function?)暗示这是可能的?

基本上,我想要一个像这样的内核:

__global__
void calcPerFace(...)
{
    int index = blockIdx.x * blockDim.x + threadIdx.x;
    int stride = blockDim.x * gridDim.x;

    for (int i = index; i < faceCount; i += stride)
    {
        // Calculate some matrices for each face in the mesh
        ...
        // Multiply those matrices
        cublasLtMatmul(...) …
Run Code Online (Sandbox Code Playgroud)

c++ cuda visual-studio cublas

5
推荐指数
1
解决办法
1908
查看次数

标签 统计

c++ ×1

cublas ×1

cuda ×1

visual-studio ×1