GPU编码器™支持一些金宝app设计模式,可有效地映射到GPU结构。
模板内核操作将输出阵列的每个元素计算为输入阵列的小区域的函数。您可以将许多过滤操作表达为模板操作。例子包括卷积,中值滤波和有限元方法。
在模板内核的GPU编码器实现中,每个线程计算输出阵列的一个元素。因为重复访问给定的输入元件以计算多个相邻输出元件,所以GPU编码器使用共享存储器来改善内存带宽和数据局部。
使用gpucoder.stildkernel.
功能并创建CUDA®模板函数的代码。有关演示模板预科的示例,请参阅GPU上的模板处理。
对于非常大的输入大小,gpucoder.stildkernel.
功能可能会产生与MATLAB无数匹配的CUDA代码®模拟。在这种情况下,考虑降低输入的大小以产生准确的结果。
许多科学应用程序包含矩阵 - 矩阵操作,包括形式的矩阵乘法(Gemm)c = ab.
您可以选择转置的地方一种
和B.
。此类矩阵矩阵操作的代码通常采用模式:
为了x = 1:m为了y = 1:n为了z = 1:k c(x,y)= f(a(x,z),b(z,y));结尾结尾结尾
在哪里F()
是用户定义的函数。在这些操作中,从一个输入矩阵和来自第二输入矩阵的列的行用于计算输出矩阵的对应元素。每个线程重新加载行和列。这种设计模式允许通过重用数据并使每个线程计算多个输出元件来优化该结构。
例如,F()
可以是常规矩阵乘以,f()= @ mtimes
。对于此类模式,GPU编码器提供了matrixmatrix.
内核在GPU上创建高效,快速实现矩阵矩阵操作。
使用gpucoder.matrixmatrixkernel.
功能并创建用于执行矩阵矩阵类型操作的CUDA代码。
coder.gpu.constantmemory.
|coder.gpu.kernel.
|coder.gpu.kernelfun.
|gpucoder.matrixmatrixkernel.
|gpucoder.stildkernel.