Cudakernel
内核在GPU上可执行
描述
一个Cudakernel
对象表示可以在GPU上执行的CUDA内核。编译PTX或CU代码时,您可以创建内核在GPU上运行CUDA或PTX代码。
方法
存在 | 确定GPU上是否有GPUARRAY或CUDAKERNEL可用 |
Feval | 评估GPU的内核 |
setConstantMemory | 在GPU上设置一些恒定内存 |
特性
一个Cudakernel
对象具有以下属性:
属性名称 | 描述 |
---|---|
threadblocksize |
内核上线的大小。这可以是长度为1、2或3的整数矢量(因为螺纹块最多可以达到3维)。元素的产物threadblocksize 不得超过MaxThreadSperBlock 对于这个内核,没有threadblocksize 可以超过 财产MaxThreadBlocksize 。 |
MaxThreadSperBlock |
该CUDA内核的单个块中允许的最大线程数。元素的产物threadblocksize 不得超过此值。 |
网格 |
网格的大小(实际上,将由GPU独立启动的螺纹块数)。这是长度3的整数向量3MaxGridSize 属性gpudevice 目的。 |
sharedMemorysize |
每个线程块可以使用的动态共享内存(字节)的数量。每个线程块都有一个可用的共享内存区域。该区域的大小在当前卡中的大小限制为〜16 kb,并与多处理器上的寄存器共享。与所有内存一样,这需要在启动内核之前分配。此共享内存区域的大小与螺纹块的大小相关,这也很常见。在内核上设置此值可确保块中的每个线程可以访问此可用共享内存区域。 |
入口点 |
(仅读取)一个字符向量包含该内核将要调用的PTX代码中的实际入口点名称。一个例子可能看起来像'_z13ReturnPoInterpkfpy' 。 |
maxnumlhsarguments |
(仅阅读)该内核支持的左侧参数的最大数量。万博1manbetx它不能大于右侧参数的数量,如果任何输入是恒定的或标量的,它将更少。 |
numrhsarguments |
(仅阅读)调用此内核所需的右侧参数数量。所有输入都需要定义输入的标量值,向量输入/输出的元素或输出参数的大小。 |
参数类型 |
(仅读)字符向量的单元格数,长度与numrhsarguments 。每个字符向量指示该输入的预期MATLAB类型是什么(例如数字类型,例如UINT8 ,,,,单身的 , 或者双倍的 其次是这个词标量 或者向量 指示我们是通过参考还是值传递)。另外,如果该参数只是内核的输入,则将其前缀在 ;如果是输入/输出,则将其前缀进出 。这使您可以决定如何使用MATLAB数组和GPUARRAY有效调用内核,并查看哪些内核输入被视为输出。 |
在R2011b中引入
这个话题有帮助吗?