Установка pycuda-2013.1.1 на Windows 7 64 бит
К вашему сведению, у меня есть 64-битная версия Python 2.7, и я следовал инструкции по установке Pycuda, чтобы установить Pycuda.
И у меня нет проблем с запуском следующего скрипта.
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;
}
""")
Я получил сообщения об ошибках
Ошибка компиляции: nvcc компиляции c:\users\xxxx\appdata\local\temp\tmpaoxt97\kernel.cu [команда: nvcc --cubin -arch sm_21 -m64 -Ic:\python27\lib\site-packages\pycuda\cuda kernel.cu] [stderr: nvcc: фатальная ошибка: nvcc не может найти поддерживаемую версию Microsoft Visual Studio. Поддерживаются только версии 2008, 2010 и 2012
Но у меня на машине установлены VS 2008 и VS 2010, и я установил путь и профиль nvcc в соответствии с инструкциями. Кто-нибудь скажет мне, что происходит?
ОБНОВЛЕНИЕ 1: Как указал cgohike, выполнение следующих операторов перед проблемным оператором решит проблему.
import os
os.system("vcvarsamd64.bat")
2 ответа
Вызов "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" amd64
или же "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" amd64
до python.exe
, Это установит все необходимые переменные среды для использования 64-битного компилятора Visual Studio из Python или командной строки.
Ну, было слишком рано называть это окончательным. Даже с разрешением от cgohike я получил ту же ошибку, когда запустил другой скрипт, как этот
import pycuda.gpuarray as gpuarray
import pycuda.driver as cuda
import pycuda.autoinit
import numpy
a_gpu = gpuarray.to_gpu(numpy.random.randn(4, 4))
print "a_gpu ="
print a_gpu
a_doubled = (2*a_gpu).get()
print
print "a_doubled ="
print a_doubled
И тогда я нашел этот ответ. Поэтому в моем случае я добавил следующую строку в nvcc.profile
COMPILER-BINDIR = C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64
После этого ошибки компилятора больше нет. Надеюсь, что это помогает другим.