Оптимизированная реализация графического процессора функций, содержащих матрично-матричные операции
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-by- K матрица, B является K-by- N затем матрица C является M-by- 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