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,三星电子有限公司

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
playframework Play Framework 2.5表单对象bean(Java)中的依赖项注入   java从javascript触发小程序按钮   JavaGWT:如何创建我自己的异步方法?   对于JTA事务类型,java JPA更改不会持久化   java如何使用预定义的甲板类制作Black Jack游戏   带有数组的java HashMap find()   从Java中的另一个类接收对象数组的参数?   java IntelliJ错误:Scala 145,错误:scalac:找不到Scala编译器JAR   java Eclipse 404请求的资源不可用   java Chuck没有界限   java阅读行每隔一行跳过一行   java如何访问我的EAR部署信息   Java中的正则表达式,其中执行搜索的文本是动态变化的   java我需要优化BigInteger的toString()方法   java Google Map Api V2,自定义路线标记   java如何在Java8中与LocalDate实现更少的需求和更高的质量   EclipseUML插件生成Java源代码   将数据库列绑定到java jComboBox和JList   java如何将两个图像合并为PDF