总体目标是使用NumbaPro在GPU (OSX 10.8.3)上运行一些功能。
在开始之前,我只是想把一切都准备好。根据这个页面,我安装了CUDA,注册为CUDA开发人员,下载了编译器SDK并设置了NUMBAPRO_NVVM=/path/to/libnvvm。Dylib环境变量
但是,运行这个基本的测试函数:
from numbapro import autojit
@autojit(target='gpu')
def my_function(x):
if x == 0.0:
return 1.0
else:
return x*x*x
print my_function(4.4)
exit()
显示这个错误:
File ".../anaconda/lib/python2.7/site-packages/numba/decorators.py", line 207, in compile_function
compiled_function = dec(f)
File "...lib/python2.7/site-packages/numbapro/cudapipeline/decorators.py", line 35, in _jit_decorator
File "...lib/python2.7/site-packages/numbapro/cudapipeline/decorators.py", line 128, in __init__
File "...lib/python2.7/site-packages/numbapro/cudapipeline/environment.py", line 31, in generate_ptx
File "...lib/python2.7/site-packages/numbapro/cudapipeline/environment.py", line 186, in _link_llvm_math_intrinsics
KeyError: 1
我试过@vectorize'ing而不是autojit,同样的错误。@autojit本身不带目标也可以。
任何想法?
为了子孙后代,我请求Continuum Support。他们回答说:
似乎你正在运行具有计算能力1.x的CUDA GPU。NVVM只支持CC2.0及以上版本。我们绝对应该有一个更好的错误报告,并在NumbaPro文档中明确支持的计算能力。