opencl cffi绑定和助手类
opencl4p的Python项目详细描述
opencl4py
==
python cffi opencl绑定和帮助程序类。
使用python 2.7、python 3.3进行测试,Linux和Windows上的Python3.4和Pypy。
api:
```
clbuildprogram
clcreatebuffer
clcreatecommandqueue
clcreatecommandqueuewithproperties
clcreatecontext
clcreatekernel
clcreatepipe
clcreateprogramwithsource
clcreateprogramwithbinary
clcreatesubbuffer
clenqueecopybuffer
clenqueecopybufferrect
clenqueefillbuffer
clenquemapbuff
clenqueueendrangekernel
>clenqueuerereadbuffer
>clenqueusvmmap
>clenqueusvmmemcpy
>clenqueusvmmemfill
>clenqueusvmmumap
>clenqueueummapmemobject
>clenqueuewwritebuffer
clfinish
clflush
>clgetdevdeviceidids
>clgeteventvewritebuffer
>clgeteventprofilinginfo
>clgetkernelinfo
>clgetkernelinfo
>clgetkernelworkgroupclgetkernelworkgroupclentworkgroupclentworkgroupclent信息
clgetplatformids
clgetplatforminfo
clgetprogramfinfo
clgetprogramfildinfo
clreleasecommandqueue
clreleasecoxt
clreleaseevent
clreleasekernel
clreleasemotect
clreleaseprogram
clsetkernelargsvmpoint
clsvmalloc
clsvmfree
clwaitforevents
````
运行:
``bash
pip install.
```
,或者将src/opencl4py复制到python
解释器能够找到它的任何地方。
3.4:
``bash
pythonpath=src nosetests3-w测试
``````
py py py:
```bash
pythonpath=src py pypy tests/test-api.py
`````
当前pypy numpy的支持可能不完整,
>因此使用numpy数组的测试可能会失败。
例如用法:
cl 4 py作为cl
导入日志
导入numpy
如果“主要”日志记录.basicConfig(level=logging.DEBUG)
platforms=cl.platforms()
logging.info(“可用的OpenCL设备:\ n\n%s\n”,
platforms.dump_devices())
ctx=platforms.create_some_context()
queue=ctx.create_queue(ctx.devices[0])
prg=ctx.create_program(
“
内核无效测试( uu global float*c,const float k){
趵T I=GET U全局身份(0);
C[I]=(A[I]+B[I]*K;
<
<
>krn=prg.get趵kernel(“test”)
A=numpy.arange(1000000,dtype=numpy.float32)
B=numpy.arange(1000000,dtype=numpy.float32)
C=numpy.empty.empty(1000000,dtype=numpy.float32)
C=numpy.empy.empty.empty(1000000,dtype=numpy.float32)k=numpy.array([0.5],
a_buf=ctx.create_缓冲区(cl.cl_mem_只读cl.cl_mem_拷贝主机_主机_ptr,
a)
b_buf=ctx.create_缓冲区(cl.cl_mem_只读cl.cl_mem_拷贝主机_主机_拷贝主机_主机c.cl_mem_只读c.cl _mem_拷贝主机_拷贝主机_主机_主机_主机_拷贝主机_主机_拷贝主机_主机_mem_write仅限cl.cl_mem_alloc_主机,
krn.set_arg(0,a_buf)
krn.set_arg(1,b_buf)
krn.set_arg(2,c_buf)
krn.set_arg(2,c_buf)
krn.set_arg(3,k[0:1])
queue.exec执行内核(krn,[a.size],none)
queue.read缓冲区(c_buf,c)
max_diff=numpy.fabs(c—(c—(c—(c,b,c,c,c,b,b,c)
max/>a+b)*k[0]).max()
logging.info(“max_diff=%.6f”,最大差异)
```
根据简化的bsd许可证发布。
版权所有(c)2014,三星电子有限公司
==
python cffi opencl绑定和帮助程序类。
使用python 2.7、python 3.3进行测试,Linux和Windows上的Python3.4和Pypy。
api:
```
clbuildprogram
clcreatebuffer
clcreatecommandqueue
clcreatecommandqueuewithproperties
clcreatecontext
clcreatekernel
clcreatepipe
clcreateprogramwithsource
clcreateprogramwithbinary
clcreatesubbuffer
clenqueecopybuffer
clenqueecopybufferrect
clenqueefillbuffer
clenquemapbuff
clenqueueendrangekernel
>clenqueuerereadbuffer
>clenqueusvmmap
>clenqueusvmmemcpy
>clenqueusvmmemfill
>clenqueusvmmumap
>clenqueueummapmemobject
>clenqueuewwritebuffer
clfinish
clflush
>clgetdevdeviceidids
>clgeteventvewritebuffer
>clgeteventprofilinginfo
>clgetkernelinfo
>clgetkernelinfo
>clgetkernelworkgroupclgetkernelworkgroupclentworkgroupclentworkgroupclent信息
clgetplatformids
clgetplatforminfo
clgetprogramfinfo
clgetprogramfildinfo
clreleasecommandqueue
clreleasecoxt
clreleaseevent
clreleasekernel
clreleasemotect
clreleaseprogram
clsetkernelargsvmpoint
clsvmalloc
clsvmfree
clwaitforevents
````
运行:
``bash
pip install.
```
,或者将src/opencl4py复制到python
解释器能够找到它的任何地方。
3.4:
``bash
pythonpath=src nosetests3-w测试
``````
py py py:
```bash
pythonpath=src py pypy tests/test-api.py
`````
当前pypy numpy的支持可能不完整,
>因此使用numpy数组的测试可能会失败。
例如用法:
cl 4 py作为cl
导入日志
导入numpy
如果“主要”日志记录.basicConfig(level=logging.DEBUG)
platforms=cl.platforms()
logging.info(“可用的OpenCL设备:\ n\n%s\n”,
platforms.dump_devices())
ctx=platforms.create_some_context()
queue=ctx.create_queue(ctx.devices[0])
prg=ctx.create_program(
“
内核无效测试(
趵T I=GET U全局身份(0);
C[I]=(A[I]+B[I]*K;
<
<
>krn=prg.get趵kernel(“test”)
A=numpy.arange(1000000,dtype=numpy.float32)
B=numpy.arange(1000000,dtype=numpy.float32)
C=numpy.empty.empty(1000000,dtype=numpy.float32)
C=numpy.empy.empty.empty(1000000,dtype=numpy.float32)k=numpy.array([0.5],
a_buf=ctx.create_缓冲区(cl.cl_mem_只读cl.cl_mem_拷贝主机_主机_ptr,
a)
b_buf=ctx.create_缓冲区(cl.cl_mem_只读cl.cl_mem_拷贝主机_主机_拷贝主机_主机c.cl_mem_只读c.cl _mem_拷贝主机_拷贝主机_主机_主机_主机_拷贝主机_主机_拷贝主机_主机_mem_write仅限cl.cl_mem_alloc_主机,
krn.set_arg(0,a_buf)
krn.set_arg(1,b_buf)
krn.set_arg(2,c_buf)
krn.set_arg(2,c_buf)
krn.set_arg(3,k[0:1])
queue.exec执行内核(krn,[a.size],none)
queue.read缓冲区(c_buf,c)
max_diff=numpy.fabs(c—(c—(c—(c,b,c,c,c,b,b,c)
max/>a+b)*k[0]).max()
logging.info(“max_diff=%.6f”,最大差异)
```
根据简化的bsd许可证发布。
版权所有(c)2014,三星电子有限公司