Укажите количество nvlink Ошибка

Проблема

Компилятор NVIDIA (nvcc) может перестать работать на соединяющемся этапе из-за несоответствия в максимальном количестве регистров, вычисленных при компиляции. Сгенерированное ядро CUDA скомпилировано с макс. количеством регистра, решенным NVCC. Ядро может вызвать функцию устройства в различном файле CUDA. Функция устройства может быть скомпилирована, чтобы использовать большее число регистров, превышающих макс. количество регистра ядра.

Можно столкнуться с сообщением об ошибке со следующим шаблоном:

ошибка nvlink: функция записи 'xxx' с макс. regcount n вызывает функцию 'yyy' с regcount m.

nvlink error : entry function 'xx' with max 
regcount of n calls function 'yyy' with 
regcount of m.

где 'xxx' и 'yyy' искаженные имена функций, n и m целые числа и m больше, чем n.

Возможные решения

Используйте '-maxrregcount n' флаг компилятора NVCC, чтобы задать максимальное количество регистров. Используйте опцию флагов компилятора в параметрах конфигурации графического процессора кода, чтобы передать флаги компилятора NVCC. Например,

cfg = coder.gpuConfig;
cfg.GpuConfig.compilerFlags = '-maxrregcount n';

где n является самым маленьким целым числом количества регистра в сообщении об ошибке, выданном nvlink.