设计模式
GPU编码器™支持一些万博1manbetx设计模式,有效地映射到GPU的结构。
模板处理
模板内核操作计算输出数组的每个元素作为一个小区域的函数输入的数组中。你可以表达很多过滤操作作为一个模板操作。例子包括卷积、中值滤波和有限元方法。
在GPU的编码器实现模板内核中,每个线程计算输出数组的一个元素。因为访问给定的输入元素反复计算多个邻国输出元素,GPU编码器使用共享内存来提高内存带宽和数据位置。
使用stencilfun
功能和创建CUDA®代码模板函数。一个示例,演示了模板preocessing,看到模板在GPU处理。
请注意
从R2022b,为模板生成CUDA内核像操作使用stencilfun
函数。gpucoder.stencilKernel
不推荐。
对于输入尺寸非常大,stencilfun
函数可能会产生CUDA代码不与MATLAB数值匹配®模拟。在这种情况下,考虑减少输入的大小产生精确的结果。
矩阵与矩阵的处理
许多科学应用程序包含矩阵与矩阵的操作包括一般矩阵矩阵乘法(GEMM)的形式C = AB
您可以选择'在哪里一个
和B
。这样的代码一般由矩阵与矩阵的操作模式:
为x = 1: M为y = 1: N为z = 1: K C (x, y) = F (B (x, z)、(z, y));结束结束结束
在哪里F ()
是一个用户定义的函数。在这些操作中,一行从一个输入矩阵和一列从第二个输入矩阵用于计算输出矩阵的对应元素。每个线程重新加载行和列。这个设计模式允许优化该结构通过重用数据和使每个线程计算多个输出元素。
例如,F ()
可以是一个常规矩阵相乘,F () = @mtimes
。这样的模式,GPU编码器提供了MatrixMatrix
内核创建一个高效、快速的实现对GPU矩阵与矩阵的操作。
使用gpucoder.matrixMatrixKernel
功能和创建CUDA代码来执行矩阵与矩阵的类型操作。
另请参阅
coder.gpu.kernel
|coder.gpu.kernelfun
|gpucoder.matrixMatrixKernel
|coder.gpu.constantMemory
|gpucoder.stencilKernel