import pycuda.driver as cuda
import pycuda.autoinit
from pycuda.compiler import SourceModule
import numpy
a = numpy.random.randn(4,4)
a = a.astype(numpy.float32)
a_gpu = cuda.mem_alloc(a.nbytes)
cuda.memcpy_htod(a_gpu, a)
mod = SourceModule("""
__global__ void doublify(float *a)
{
int idx = threadIdx.x + threadIdx.y*4;
a[idx] *= 2;
}
""")
I just installed CUDA 9.0 and pycuda, and I am following the tutorial to run the first cuda program. But it always turns out error:
CompileError: nvcc compilation of c:\users\rl74173\appdata\local\temp\tmp6nww2c\kernel.cu failed
I did some research and find some answers to this before. So I add this before running:
import os
os.system("vcvarsamd64.bat")
But it is still error.
I also see someone figure it out by adding line below to nvcc.profile
COMPILER-BINDIR = C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64
I installed visual studio community 2017,so in my case, I tried
COMPILER-BINDIR = C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\lib\amd64
But it doesn't help.
nvcc.profiles
located? edit: by the way, shouldn't this have been "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\Hostx64\amd64" or more recently "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\bin\Hostx64\x64" – JHBonariusprint(cmdline)
in PyCuda's compiler.py. I've run the exact command in a windows cmd window (with vcvars64 run):nvcc --cubin -arch sm_50 -m64 -Ic:\programdata\anaconda3\lib\site-packages\pycuda\cuda kernel.cu
... and it works! Why doesn't pycuda work then.... – JHBonariusprint(stdout)
after the call. Output:"nvcc fatal : Cannot find compiler 'cl.exe' in PATH"
. So it seems the call tovcvars[...].bat
does not change the PATH correctly. – JHBonarius