intel sycl 支持提前编译和交叉编译ARM?

Posted

技术标签:

【中文标题】intel sycl 支持提前编译和交叉编译ARM?【英文标题】:intel sycl supports a-head-of time compile and cross-compile ARM? 【发布时间】:2020-04-03 07:54:54 【问题描述】:

我正在考虑用 intel sycl 和 pocl 构建 SYCL 和 OpenCL 环境,提前编译并在 ARM CPU 板上运行。

理论上,如果intel sycl 支持交叉编译,我认为这是可能的。你能告诉我一些意见或建议吗?

【问题讨论】:

【参考方案1】:

使用 ComputeCpp(Codeplay 的 SYCL 实现)可以很容易地使用 CMake 和正确的工具链文件来做到这一点。在 computecpp-sdk/cmake/toolchains/arm-gcc-poky.cmake 中的ComputeCpp SDK 中有一个 Arm 工具链文件,您可以在以下示例命令中使用它。您需要用自己的路径替换每条路径。例如,使用此命令,您可以构建 computecpp-sdk 源代码,生成的二进制文件将在目标 arm 设备上运行。在二进制文件上使用 file Linux 命令将验证已构建的二进制文件是否是目标的正确二进制文件类型。请注意,当使用上面引用的 ComputeCpp SDK 中的 FindComputeCpp.cmake 文件时,这将最有效。

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 ..

【讨论】:

以上是关于intel sycl 支持提前编译和交叉编译ARM?的主要内容,如果未能解决你的问题,请参考以下文章

ARM交叉编译器扫盲

安装ARM交叉编译器

ARM交叉编译器GNUEABINONE-EABIARM-EABIGNUEABIHF等的区别

如何交叉编译omniORB 4(在x86_64 for ARM 和omniORB 4.1.6 上)

安装arm-linux-gcc交叉编译器

arm交叉编译器gnueabinone-eabiarm-eabignueabihfgnueabi区别