GPU Coder™ поддерживает некоторые шаблоны проекта, которые эффективно сопоставляются со структурами графический процессор.
Операции с ядром трафарета вычисляют каждый элемент массива выхода как функцию от небольшой области массива входа. Можно выразить множество операций фильтрации как операцию трафарета. Примеры включают свертку, медианную фильтрацию и методы с конечными элементами.

В реализации GPU Coder ядра трафарета каждый поток вычисляет один элемент выходного массива. Поскольку к данному входному элементу обращаются неоднократно для вычисления нескольких соседних выходных элементов, GPU Coder использует общую память для улучшения полосы пропускания памяти и локальности данных.
Используйте gpucoder.stencilKernel функционировать и создавать CUDA® код для функций трафарета. Пример, демонстрирующий предварительную обработку трафарета, см. в разделе Обработка трафарета на графическом процессоре.
Для очень больших входов сигнала gpucoder.stencilKernel функция может выдать код CUDA, который не совпадает численно с MATLAB® симуляция. В таких случаях рассмотрите уменьшение размера входа, чтобы получить точные результаты.
Многие научные приложения содержат матрично-матричные операции, включая GEneral Matrix to Matrix Multiplication (GEMM) вида C = AB где можно опционально транспонировать A и B. Код для таких матрично-матричных операций обычно принимает шаблон:
for x = 1:M for y = 1:N for z = 1:K C(x,y) = F(A(x,z),B(z,y)); end end end
где F() является пользовательской функцией. В этих операциях строка из одной входной матрицы и столбец из второй входной матрицы используются, чтобы вычислить соответствующий элемент выходной матрицы. Каждый поток перезагружает строку и столбец. Этот шаблон проекта позволяет оптимизировать эту структуру путем повторного использования данных и создания каждого потока для вычисления нескольких выходных элементов.

Для примера, F() может быть регулярной матрицей умножить, F()=@mtimes. Для таких шаблонов GPU Coder предоставляет MatrixMatrix ядро для создания высокоэффективной, быстрой реализации матрично-матричных операций на графическом процессоре.
Используйте gpucoder.matrixMatrixKernel и создайте код CUDA для выполнения операций матричного типа.
coder.gpu.constantMemory | coder.gpu.kernel | coder.gpu.kernelfun | gpucoder.matrixMatrixKernel | gpucoder.stencilKernel