使用ctypes传递clang传染媒介

时间:2018-04-19 05:18:19

标签: python c cython ctypes

我正在尝试将现有的OpenCL内核(与PyOpenCL接口)转换为C-> Python扩展,以获得比普通python更高的性能。我的OpenCL代码很大程度上依赖于float4和double4,两者都可以使用clang:

typedef float float4 __attribute__((ext_vector_type(4)));

最好,我想将一个numpy数组发送到扩展名,该数组将数组解释为向量。

我在argtypes中尝试过的事情:

  • 使用pyopencl float4数据类型
  • 使用c_float * 4
  • ndpointer(c_float,flags =“C_CONTIGUOUS”)

使用ndpointer,我可以将numpy数组传递给扩展,然后将其解释为C中的指针。但是,当我将函数参数数据类型从float *更改为float4 *时,函数只返回0表示所有指示矢量。

我不确定我是否应该切换到Cython,或者是否有我在这里缺少的东西。

0 个答案:

没有答案