首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyOpenCL \\未能启动内核

PyOpenCL \\未能启动内核
EN

Stack Overflow用户
提问于 2015-01-07 23:39:01
回答 1查看 328关注 0票数 0

当我使用PyOpenCL运行内核"SIMPLE_JOIN“时,它会失败。

文件中内核的头

代码语言:javascript
复制
void SIMPLE_JOIN(__global const int* a, int a_col, __global const int* a_valuesPic,
                 __global const int* b, int b_col, __global const int* b_valuesPic,
                __global const int* join_valuesPic, __global int* current, const int maxVars, __global int* buffer, int joinVar)

在PyOpenCL中的执行

代码语言:javascript
复制
program.SIMPLE_JOIN(context, (a_col, b_col), None,  \
                    buffer_a, np.int32(a_col), buffer_a_valPic, \
                    buffer_b, np.int32(b_col), buffer_b_valPic, \
                    buffer_join_valPic, buffer_current, np.int32(maxVars), \
                    buffer_result, np.int32(joinList[0]))

命令行中的错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.2\helpers\pydev\pydevd.py", line 2199, in <module>
    globals = debugger.run(setup['file'], None, None)
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.2\helpers\pydev\pydevd.py", line 1638, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:/Users/��/Documents/��������/GAP+/gapQueryTree.py", line 213, in <module>
    res1_array, res1_ValsPic = gpu.gpu_join(p[0], p1_ValsPic, friend[0], friend1_ValsPic)
  File "C:/Users/��/Documents/��������/GAP+\gapPyOpenCl.py", line 107, in gpu_join
    buffer_result, np.int32(joinList[0]))
  File "C:\Python27\lib\site-packages\pyopencl\__init__.py", line 515, in kernel_call
    global_offset, wait_for, g_times_l=g_times_l)
Boost.Python.ArgumentError: Python argument types in
    pyopencl._cl.enqueue_nd_range_kernel(Context, Kernel, tuple, NoneType, NoneType, NoneType)
did not match C++ signature:
    enqueue_nd_range_kernel(class pyopencl::command_queue {lvalue} queue, class pyopencl::kernel {lvalue} kernel, class boost::python::api::object global_work_size, class boost::python::api::object local_work_size, class boost::python::api::object global_work_offset=None, class boost::python::api::object wait_for=None, bool g_times_l=False)

Process finished with exit code -1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-08 14:22:04

内核调用的第一个参数应该是命令队列,而不是上下文:

program.SIMPLE_JOIN(queue, (a_col, b_col), None, \...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27830650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档