opencl

    4热度

    1回答

    我如何在OpenCL中定义函数?我试图为每个函数构建一个程序。它没有奏效。 float AddVectors(float a, float b) { return a + b; } kernel void VectorAdd( global read_only float* a, global read_only float* b, global wr

    3热度

    3回答

    “SIMT”体系结构的一些概念和设计对我而言仍然不清楚。 从我所看到和阅读的内容来看,分歧的代码路径和if()总是一个相当糟糕的主意,因为许多线程可能会以锁步方式执行。那究竟是什么意思?什么是这样的: kernel void foo(..., int flag) { if (flag) DO_STUFF else DO_SOMETHING_ELSE

    4热度

    1回答

    有没有任何方法可以在主机上分配内存,可以直接从GPU访问,而无需复制? 像CUDA中的cudaHostGetDevicePointer一样。

    5热度

    1回答

    我正在将CUDA应用程序(this if you must know)转换为OpenCL。原始应用程序使用C风格的CUDA API,只有一个流只是为了避免在读取结果时自动忙等待。 现在我注意到OpenCL命令队列看起来很像CUDA流。但在the device read command中,同样在写入和内核执行命令中,我也注意到事件的参数。所以我想知道,执行设备写操作需要多少内核(例如,对一个内核的一

    6热度

    2回答

    我想知道在分配缓冲区之前,我的设备上有多少可用内存。这可能吗?我知道有CL_DEVICE_GLOBAL_MEM_SIZE为总内存,和CL_DEVICE_MAX_MEM_ALLOC_SIZE单个对象的最大大小,但我想知道当前的内存状态。 现在,我可能不得不使用OpenGL供应商特定的扩展。

    2热度

    1回答

    我对C很新,所以要温和。 我想使用Linux的库拦截方法来用我自己的库替换对OpenCL库的调用。我明白这可以使用LD_PRELOAD完成。所以我可以重新实现在我自己的库中的OpenCL头文件中定义的OpenCL函数,然后可以链接它。 问题是,这个OpenCL头还包含一些外部结构定义,例如, typedef struct _cl_mem * cl_mem; 哪些未在OpenCL标头中定义。这些结构

    2热度

    1回答

    我似乎无法在cl.h或cl.hpp(只有错误宏)中找到clCreateSubBuffer。它在规范中提到,有关于此的任何想法?或者任何其他方式来创建一个子缓冲区? 所有我能想到的是使用递增的指针重新创建缓冲区。

    1热度

    1回答

    我一直试图让一个简单的扫描工作很长一段时间。对于小问题,输出是正确的,但是对于大输出,我有时只能得到正确的结果。我检查了Apple's OpenCL example,我基本上做同样的事情(除了银行冲突,我忽略了atm)。因此,这里的第一个阶段的代码: __kernel void scan_init(__global int * input, __global int * sums)

    1热度

    1回答

    我正在寻找支持cl_khr_fp16扩展的OpenCL语言的实现。据我所知,目前没有公开的实现支持这一点。

    4热度

    4回答

    我想在Python中开始编程GPGPU。我应该从pyopencl还是clyther开始?有什么不同?