Параметры конфигурации для генерации кода CUDA из кода MATLAB с GPU Coder
coder.gpuConfig объект содержит параметры конфигурации что codegen использование для генерации CUDA® MEX, статической библиотеки, динамически подключаемой библиотеки или исполняемой программы с GPU Coder™. Передайте объект codegen функция при помощи -config опция.
cfg = coder.gpuConfig( создает объект настройки генерации кода для заданного типа сборки, который может быть MEX CUDA, статической библиотекой, динамически подключаемой библиотекой или исполняемой программой. Если продукт Embedded Coder® установлен, он создает build_type)coder.EmbeddedCodeConfig объект для статической библиотеки, динамической библиотеки или исполняемого файла создает типы.
cfg = coder.gpuConfig( создает объект настройки генерации кода сгенерировать build_type,'ecoder',false)'lib' CUDA, 'dll', или 'exe' выведите, даже если продукт Embedded Coder установлен.
cfg = coder.gpuConfig( создает build_type,'ecoder',true)coder.EmbeddedCodeConfig объект настройки, даже если продукт Embedded Coder не установлен. Однако генерация кода, использующая coder.EmbeddedCodeConfig объект требует лицензии Embedded Coder.
build_type — Выведите, чтобы создать из сгенерированного кода C/C++ CUDA'MEX' | 'LIB' | 'DLL' | 'EXE'Выведите, чтобы создать из сгенерированного кода C/C++ CUDA, заданного как одно из значений в этой таблице.
| Значение | Описание |
|---|---|
'MEX' | MEX CUDA |
'LIB' | Статическая библиотека |
'DLL' | Динамически подключаемая библиотека |
'EXE' | Исполняемая программа |
Enabled — Управляйте генерацией кода графического процессораtrue (значение по умолчанию) | falseУправляйте генерацией CUDA (*.cu) файлы при помощи одного из значений в этой таблице.
| Значение | Описание |
|---|---|
true | Это значение является значением по умолчанию. Включает генерацию кода CUDA. |
false | Отключает генерацию кода CUDA. |
Пример: cfg.GpuConfig.Enabled = true
MallocMode — Выделение памяти графического процессора'discrete' (значение по умолчанию) | 'unified'Выделение памяти (malloc) режим, который будет использоваться в сгенерированном коде CUDA, заданном как одно из значений в этой таблице.
| Значение | Описание |
|---|---|
'discrete' | Это значение является значением по умолчанию. Сгенерированный код использует |
'unified' | Сгенерированный код использует |
Для получения дополнительной информации смотрите Дискретные и Режимы автоматического управления.
Пример: cfg.GpuConfig.MallocMode = 'discrete'
KernelNamePrefix — Пользовательские префиксы имени ядраЗадайте пользовательский префикс имени для всех ядер в сгенерированном коде. Например, с помощью значения 'CUDA_' создает ядра с именами CUDA_kernel1, CUDA_kernel2, и так далее. Если никакое имя не обеспечивается, GPU Coder предварительно ожидает имя ядра с именем функции точки входа. Имена ядра могут содержать прописные буквы, строчные буквы, цифры 0-9 и символ подчеркивания _. GPU Coder удаляет неподдерживаемые символы из имен ядра и добавляет alpha к префиксам, которые не начинаются с алфавитной буквы.
Пример: cfg.GpuConfig.KernelNamePrefix = 'myKernel'
EnableCUBLAS — Используйте cuBLAS библиотекаtrue (значение по умолчанию) | falseЗамена математической функции вызывает с NVIDIA®
cuBLAS вызовы библиотеки, заданные как одно из значений в этой таблице.
| Значение | Описание |
|---|---|
true | Это значение является значением по умолчанию. Позволяет GPU Coder заменять соответствующие вызовы математической функции на вызовы |
false | Отключите использование |
Для получения дополнительной информации смотрите Ядра от Вызовов Библиотеки.
Пример: cfg.GpuConfig.EnableCUBLAS = true
EnableCUSOLVER — Используйте cuSOLVER библиотекаtrue (значение по умолчанию) | falseЗамена математической функции вызывает с NVIDIA cuSOLVER вызовы библиотеки, заданные как одно из значений в этой таблице.
| Значение | Описание |
|---|---|
true | Это значение является значением по умолчанию. Позволяет GPU Coder заменять соответствующие вызовы математической функции на вызовы |
false | Отключите использование |
Для получения дополнительной информации смотрите Ядра от Вызовов Библиотеки.
Пример: cfg.GpuConfig.EnableCUSOLVER = true
EnableCUFFT — Используйте cuFFT библиотекаtrue (значение по умолчанию) | falseЗамена fft вызовы функции с NVIDIA cuFFT вызовы библиотеки, заданные как одно из значений в этой таблице.
| Значение | Описание |
|---|---|
true | Это значение является значением по умолчанию. Позволяет GPU Coder заменять соответствующий |
false | Отключает использование |
Для получения дополнительной информации смотрите Ядра от Вызовов Библиотеки.
Пример: cfg.GpuConfig.EnableCUFFT = true
Benchmarking — Добавьте сравнительное тестирование в сгенерированный кодfalse (значение по умолчанию) | trueУправляйте сложением сравнительного тестирования кода к сгенерированному коду CUDA при помощи одного из значений в этой таблице.
| Значение | Описание |
|---|---|
false | Это значение является значением по умолчанию. Сгенерированный код CUDA не содержит функциональность сравнительного тестирования. |
true | Генерирует код CUDA со сравнительным тестированием функциональности. Эта опция использует API CUDA, такие как |
Пример: cfg.GpuConfig.Benchmarking = true
SafeBuild — Проверка ошибок в сгенерированном кодеfalse (значение по умолчанию) | trueДобавьте функциональность проверки ошибок в сгенерированный код CUDA при помощи одного из значений в этой таблице.
| Значение | Описание |
|---|---|
false | Это значение является значением по умолчанию. Сгенерированный код CUDA не содержит функциональность проверки ошибок. |
true | Генерирует код с проверкой ошибок на вызовы API CUDA и вызовы ядра. |
Пример: cfg.GpuConfig.SafeBuild = true
ComputeCapability — Минимум вычисляет возможность генерации кода (значение по умолчанию) | '3.2'| '3.7' | '5.0' | '5.2' | '5.3' | '6.0' | '6.1' | '6.2' | '7.0' | '7.1' | '7.2' Выбор минимум вычисляет возможность генерации кода. Вычислить возможность идентифицирует функции, поддерживавшие оборудованием графического процессора, и используется приложениями во время выполнения, чтобы определить, который показывает оборудование, инструкции доступны на существующем графическом процессоре. Если вы задаете пользовательский, вычисляют возможность, GPU Coder игнорирует эту установку.
Пример: cfg.GpuConfig.ComputeCapability = '6.1'
CustomComputeCapability — Управляйте генерацией кода графического процессора'' (значение по умолчанию) | вектор символовЗадайте имя NVIDIA виртуальная архитектура графического процессора, для которой должны быть скомпилированы файлы входа CUDA.
Например, чтобы задать виртуальный тип архитектуры -arch=compute_50. Можно задать действительную архитектуру с помощью -arch=sm_50. Для получения дополнительной информации см. Опции для Регулирования темы Генерации кода графического процессора в документации инструментария CUDA.
Пример: cfg.GpuConfig.CustomComputeCapability = '-arch=compute_50'
CompilerFlags — Дополнительные флаги к компилятору графического процессора'' (значение по умолчанию) | character vectorПередайте дополнительные флаги компилятору графического процессора. Например, --fmad=false сообщает nvcc компилятор, чтобы отключить сокращение с плавающей точкой умножается и добавляет к синглу, С плавающей точкой, Умножаются - Добавляет инструкция (FMAD).
Для подобных параметров компилятора NVIDIA смотрите тему на Опциях Команды NVCC в документации инструментария CUDA.
Пример: cfg.GpuConfig.CompilerFlags = '--fmad=false'
StackLimitPerThread — Сложите предел на поток графического процессора (значение по умолчанию) | integerЗадайте максимальный предел стека на поток графического процессора как целочисленное значение.
Пример: cfg.GpuConfig.StackLimitPerThread = 1024
MallocThreshold — Порог Malloc (значение по умолчанию) | integerЗадайте размер, выше которого частные переменные выделяются на куче вместо стека как целочисленное значение.
Пример: cfg.GpuConfig.MallocThreshold = 256
SelectCudaDevice — Выбор устройства CUDA (значение по умолчанию) | deviceIDВо много среде графического процессора, такой как платформы Диска NVIDIA, задайте устройство CUDA, чтобы предназначаться.
Пример: cfg.GpuConfig.SelectCudaDevice = <DeviceID>
Сгенерируйте MEX-функцию CUDA от функции MATLAB, которая подходит для генерации кода графического процессора. Кроме того, включите отчет генерации кода.
Запишите функции MATLAB VecAdd, это выполняет векторное сложение входных параметров A и B.
function [C] = VecAdd(A,B) %#codegen C = coder.nullcopy(zeros(size(A))); coder.gpu.kernelfun(); C = A + B; end
Создайте объект настройки генерации кода сгенерировать MEX-функцию.
cfg = coder.gpuConfig('mex');Включите отчет генерации кода.
cfg.GpuConfig.EnableCUBLAS = true; cfg.GenerateReport = true;
Сгенерируйте MEX-функцию в текущей папке, задающей объект настройки использование -config опция.
% Generate a MEX function and code generation report codegen -config cfg -args {zeros(512,512,'double'),zeros(512,512,'double')} VecAdd
codegen | coder.CodeConfig | coder.EmbeddedCodeConfig | coder.MexCodeConfig
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.