我在一台 Windows 10 机器上,我有 2 个文件,main.cpp 和 cuda.cu(我已经在 Ubuntu 上成功构建了这个项目,我正在尝试让它在 Windows 上构建)。我将它们都编译为 64 位架构的目标文件。我当前安装了 MS Visual Studio 2010,但我知道它太旧了。如果您认为这是造成此问题的原因,我可以安装 2015(但我不这么认为)。
当我尝试使用命令链接两个文件时
nvcc main.obj cuda.obj
Run Code Online (Sandbox Code Playgroud)
我收到此错误:-
main.obj : fatal error LNK1143: invalid or corrupt file: no symbol for COMDAT section 0x6
Run Code Online (Sandbox Code Playgroud)
我应该怎么办?
我运行了这个我在CUDA Python简介页面上阅读的代码: -
import numpy as np
from timeit import default_timer as timer
from numbapro import vectorize
@vectorize(["float32(float32, float32)"], target='gpu')
def VectorAdd(a, b):
return a + b
def main():
N = 32000000
A = np.ones(N, dtype=np.float32)
B = np.ones(N, dtype=np.float32)
C = np.zeros(N, dtype=np.float32)
start = timer()
C = VectorAdd(A, B)
vectoradd_timer = timer() - start
print("C[:5] = " + str(C[:5]))
print("C[-5:] = " + str(C[-5:]))
print("VectorAdd took %f seconds" % vectoradd_timer)
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
我在终端上收到以下错误: -
dtn34@dtn34-ubuntu:~/Python$ …
Run Code Online (Sandbox Code Playgroud)