Оптимизированная реализация GPU функций, содержащих операции матрица-матрица
C = gpucoder.matrixMatrixKernel(FUN,A,B) генерирует ядра из функций, содержащих GEMM-подобные операции. Например, сопоставление точек элемента между двумя изображениями с помощью:
Сумма абсолютных разностей (SAD) - F() = @(a,b)abs(a-b)
Сумма квадратичных разностей (SSD) - F() = @(a,b)(a-b).*(a-b)
FUN является дескриптором определяемой пользователем функции. Она берет одну строку и столбец из матрицы A и одна строка и столбец из матрицы B и выводит вектор того же типа, что и вход. Выходной вектор затем суммируется для вычисления одного скалярного значения в C. Цифровые входы A и B должны иметь одинаковый размер или совместимые размеры. Например, если A является Mоколо-K матрица, B является Kоколо-N матрица затем C является Mоколо-N матрица.
C = gpucoder.matrixMatrixKernel(FUN,A,B,orientation) имеет необязательный аргумент orientation которая определяет ориентацию A и B матрицы. Это может занять одно из четырех возможных значений:
'nn' - Матрицы A и B нормальные.
'nt' - Матрица B транспонируется.
'tn' - Матрица A транспонируется.
'tt' - Обе матрицы A и B транспонируются.
codegen | coder.gpu.constantMemory | coder.gpu.kernel | coder.gpu.kernelfun | coder.gpu.nokernel | gpucoder.batchedMatrixMultiply | gpucoder.batchedMatrixMultiplyAdd | gpucoder.stencilKernel | gpucoder.stridedMatrixMultiply | gpucoder.stridedMatrixMultiplyAdd