Оптимизированная реализация графического процессора функций, содержащих матричные операции над матрицей
C = gpucoder.matrixMatrixKernel(FUN,A,B)C = gpucoder.matrixMatrixKernel(FUN,A,B,orientation)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, который задает ориентацию матриц B и A. Это может принять одно из четырех возможных значений:
'nn' - Матрицы A и B нормальны.
'nt' - Матричный B транспонирован.
'tn' - Матричный A транспонирован.
'tt' - Транспонированы обе матрицы A и B.
coder.gpu.constantMemory | coder.gpu.kernel | coder.gpu.kernelfun | gpucoder.stencilKernel