Установка 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

После этого ошибки компилятора больше нет. Надеюсь, что это помогает другим.

Другие вопросы по тегам