如何将float传递给opencl(通过PyOpenCL API)并返回python float?

我正在使用PyOpenCL。我将一个浮点数组传递给OpenCL内核。当返回float时,python不能使用C类型,并且有奇怪的值:8.27548023e-36 8.27548310e-36等。

选择 | 换行 | 行号
  1. float myFunc(float number, float iter_val)
  2. {
  3. float output;
  4. // Beginning of FOR loop #1
  5. for(0;iter_val-1>0;){
  6.  
  7.  
  8.                      if(output == 0){
  9.                                      output = number*number;
  10.                                      iter_val = iter_val - 1;
  11.                                      }
  12.  
  13.                      else{          
  14.                           output = output*number;
  15.                           iter_val = iter_val - 1;
  16.                           }
  17.  
  18.                      } // End of FOR loop #1
  19.  
  20. return output;
  21. } //End of myFunc definition
  22.  
  23.  
  24. // Main Kernel //
  25.  
  26. __kernel void part1(__global float* a, __global float* b, __global float* c)
  27. {
  28.  
  29.     unsigned int i = get_global_id(0);
  30.  
  31.     c[i] = myFunc(a[i], b[i]);
  32.  
  33.  
  34. }

标签: python

添加新评论