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