При предназначении для макетной платы NVIDIA® Tegra® от MATLAB®, на котором работают, операционная система Linux состоит из пяти задач.
Сконфигурируйте набор инструментальных средств кросс-компиляции
Установите Up & Configure CUDA® Environment
Сконфигурируйте проект GPU Coder™ для кросс-компиляции
Сгенерируйте аппаратную цель совместимый код и двоичные файлы
Развернитесь и запущенный приложение
Первая задача получает и конфигурирует набор инструментальных средств для аппаратной цели. Кросс-скомпилированный набор инструментальных средств выполняется в хост-системе (в этом случае, 64-битный Linux®), но генерирует двоичный код для заданной аппаратной цели.
Для основанного на Tegra NVIDIA плата Jetson TK1 используйте Linaro 4.8 Linux для ARM\U 00AE\набор инструментальных средств. Загрузите релиз gcc-linaro-arm-linux-gnueabihf-4.8-2013.08_linux
tarball отсюда.
Извлеките загруженные файлы. Извлеченная папка содержит подпапки bin
, lib
, и так далее. Установите переменную окружения LINARO_TOOLCHAIN_4_8
указывать на корневую папку набора инструментальных средств. В команде MATLAB запрашивают, введите:
setenv('LINARO_TOOLCHAIN_4_8','//extracted/folder/path');
Для Jetson TX2 NVIDIA и плат TX1, используйте набор инструментальных средств Linaro 4.9 linux-to-aarch64. Загрузите релиз gcc-linaro-4.9-2016.02-x86_64_aarch64-linux-gnu
tarball отсюда.
После того, как загруженный, извлеките файлы. Извлеченная папка содержит подпапки bin
, lib
, и так далее. Установите переменную окружения LINARO_TOOLCHAIN_4_9
указывать на корневую папку набора инструментальных средств. В команде MATLAB запрашивают, введите:
setenv('LINARO_TOOLCHAIN_4_9','//extracted/folder/path');
Следующая задача получает и конфигурирует целевую среду CUDA для кросс-компиляции. Эта среда является набором, включают файлы и библиотеки, обеспеченные NVIDIA для аппаратной цели. Скопируйте эти файлы непосредственно с целевого устройства. Для любой из плат NVIDIA Tegra скопируйте все файлы (включая подпапки) от /usr/local/cuda
на целевом компьютере к местоположению на вашем компьютере разработчика. Обязательно не перезапишите любой из файлов CUDA на компьютере разработчика.
От терминала Linux можно выполнить операцию копии при помощи команды scp
.
$> scp -r ubuntu@tegra-ubuntu:/usr/local/cuda ~/cuda-tegra-arm
Затем установите соответствующую переменную окружения указывать на целевую реализацию CUDA. Для NVIDIA Tegra X2, набор NVIDIA_CUDA_TX2
. Для NVIDIA Tegra X1, набор NVIDIA_CUDA_TX1
. Для NVIDIA Tegra K1, набор NVIDIA_CUDA_TK1
Например, в команде MATLAB запрашивают, введите:
setenv('NVIDIA_CUDA_TK1','~/cuda-tegra-arm');
Сконфигурируйте проект GPU Coder для кросс-компиляции. Во-первых, создайте объект настройки кодера, и затем установите соответствующий набор инструментальных средств для аппаратной цели.
cfg = coder.gpuConfig('exe');
cfg.CustomSource = <main-file>
Для NVIDIA Tegra X2, набор набор инструментальных средств при помощи команды:
cfg.Toolchain = 'NVIDIA CUDA for Jetson Tegra X2 | gmake (64-bit Linux)';
Для NVIDIA Tegra X1, набор набор инструментальных средств при помощи команды:
cfg.Toolchain = 'NVIDIA CUDA for Jetson Tegra X1 | gmake (64-bit Linux)';
Для NVIDIA Tegra K1, набор набор инструментальных средств при помощи команды:
cfg.Toolchain = 'NVIDIA CUDA for Jetson Tegra K1 v6.5 | gmake (64-bit Linux)';
Запустите команду codegen
для своего приложения, задав статические входные параметры:
codegen -config cfg -args {<application-input} <application-name>
Папка codegen
в текущей рабочей директории содержит сгенерированный код и двоичные файлы.
Переместите созданное приложение <application.elf>
в целевое устройство, и затем выполните его. Чтобы развернуть созданный исполняемый файл, передайте файл плате при помощи вашего предпочтительного клиента scp
. Вам нужны имя хоста или IP-адрес вашей требуемой платы и username
и password
, чтобы получить доступ к нему. Для NVIDIA Tegra X2, X1 или K1 на терминале Linux, введите:
$> sshpass -p "password" scp yourapplication.elf username@hostname
Затем войдите в систему платы, перейдите к папке, где ваш исполняемый файл расположен, и запустите свой исполняемый файл:
$> ssh username@hostname $> cd applicationDirectory $> ./yourapplication.elf
codegen
| coder.checkGpuInstall
| coder.gpuConfig
| setenv