Intel Sycl поддерживает сборку и кросс-компиляцию ARM? - PullRequest
2 голосов
/ 03 апреля 2020

Я планирую собрать среду SYCL и OpenCL с помощью Intel Sycl и Pocl путем предварительной компиляции и запуска их на плате процессора ARM.

Теоретически, я думаю, что это возможно, если Intel Sycl поддерживает кросс-компиляцию. Не могли бы вы дать мне какой-нибудь комментарий или совет.

1 Ответ

3 голосов
/ 03 апреля 2020

Это можно сделать, используя Compute Cpp, реализацию SYCL в Codeplay, довольно легко, используя CMake и правильный файл набора инструментов. В Compute Cpp SDK есть файл набора инструментов Arm, расположенный в compute cpp -sdk / cmake / toolchains / arm-g cc -poky.cmake, вы можете использовать его в следующем пример команды. Вам нужно будет заменить каждый путь своим. Например, с помощью этой команды вы можете создать исходный код compute cpp -sdk, и созданные двоичные файлы будут работать на целевом устройстве arm. Использование команды file Linux для двоичного файла проверит, является ли созданный двоичный файл правильным двоичным типом для вашей цели. Обратите внимание, что это будет лучше всего работать при использовании файла FindCompute Cpp .cmake из вышеуказанного пакета Compute Cpp SDK.

cmake -DComputeCpp_DIR=/path/to/computecpp-ce-xyz-arm \
  -DComputeCpp_HOST_DIR=/path/to/computecpp-ce-xyz-x86 \ 
  -DOpenCL_LIBRARY=path/to/libOpenCL.so.1.2 \
  -DOpenCL_INCLUDE_DIR=/path/to/opencl/include \
  -DCMAKE_TOOLCHAIN_FILE=../computecpp-sdk/cmake/toolchains/gcc-generic.cmake \
  -DCOMPUTECPP_BITCODE=spir64 ..
...