如何将 Cutlass 包含在 CuPy 项目中?

问题描述 投票:0回答:1
kernel = r"""
#include <include/cutlass/cutlass.h>
extern "C" __global__ void entry0() {
    return ;
}
"""
import cupy as cp

raw_module = cp.RawModule(code=kernel, backend='nvcc', options=("-I G:/cutlass-3.3.0",))
raw_module.get_function("entry0")((1, 1, 1),(1, 1, 1),())

我像这样包含它,但是当我尝试运行它时,我收到以下错误消息:

cupy.cuda.compiler.CompileException: `nvcc` command returns non-zero exit status.
command: ['C:\\Program', 'Files\\NVIDIA', 'GPU', 'Computing', 'Toolkit\\CUDA\\v12.2\\bin\\nvcc.EXE', '-gencode=arch=compute_89,code=sm_89', '--cubin', '-I G:/cutlass-3.3.0', '-IC:\\Users\\mrakg\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\cupy\\_core\\include', '-IC:\\Users\\mrakg\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\cupy\\_core\\include\\cupy\\_cuda\\cuda-12', '-IC:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.2\\include', '-ftz=true', 'C:\\Users\\mrakg\\AppData\\Local\\Temp\\tmpdwwgnwt7\\e63b826e4265f53d72fc550972a60778d4e87cc0.cu']
return-code: 2
stdout/stderr:
G:/cutlass-3.3.0\include/cutlass/cutlass.h(48): fatal error C1083: Cannot open include file: 'cutlass/detail/helper_macros.hpp': No such file or directory
e63b826e4265f53d72fc550972a60778d4e87cc0.cu

问题似乎是包含得不够彻底。如果我查看 Cutlass 库本身,我会看到一个 引用的 include

#include "cutlass/detail/helper_macros.hpp"

如果是...

#include "detail/helper_macros.hpp"

它本来可以工作,但事实上,它没有在正确的目录中查看它。我应该怎么做才能正确包含它?

cuda nvcc cupy
1个回答
0
投票
"-I G:/cutlass-3.3.0/include"

看来我的记忆有问题。我要做的是将目录包含到路径中。之后,编译如下。

kernel = r"""
#include <cutlass/cutlass.h>
extern "C" __global__ void entry0() {
    return ;
}
"""
import cupy as cp

raw_module = cp.RawModule(code=kernel, backend='nvcc', options=("-I G:/cutlass-3.3.0/include",))
raw_module.get_function("entry0")((1, 1, 1),(1, 1, 1),())
© www.soinside.com 2019 - 2024. All rights reserved.