1

我按照这里的说明进行操作。我已经安装了来自http://www.lfd.uci.edu/~gohlke/pythonlibs/的所有软件包(都是最新的)。

看来我安装成功了。我在 Ipython 中运行了以下代码:

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).astype(numpy.float32))  ## pass
a_doubled = (2*a_gpu).get()  ## the line can't be passed with Ipython

并得到这个错误:

文件“C:\Python27\lib\site-packages\pycuda\compiler.py”,第 137 行,在 compile_plain
lcase_err_text = (stdout+stderr).decode("utf-8").lower() 文件“C:\ Python27\lib\encodings\utf_8.py",第 16 行,解码返回 codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0xb8 in position 109: invalid start byte

如何解决这个问题?我挣扎了好几天。

4

1 回答 1

1

当代码包含不可解析的 unicode 时,这似乎是由 PyCUDA 内部的错误处理问题引起的。该错误已在 2013 年底修复,本应在 PyCUDA 2014.1 版本中推送。

[此答案已作为社区 wiki 条目添加,以将此问题从 CUDA 和 PyCUDA 标签的未回答列表中删除]

于 2015-10-19T08:28:08.760 回答