gpt4 book ai didi

opencl - OpenCL 和 OpenCL Embedded 配置文件之间的主要区别

转载 作者:行者123 更新时间:2023-12-02 07:34:11 28 4
gpt4 key购买 nike

最近我看到一些开发板支持 OpenCL EP,例如 odroid XU。我知道的一件事是 OpenCL EP 适用于 ARM 处理器,但它与基于主要桌面的 OpenCL 在哪些特性上有所不同。

最佳答案

下面列举了主要区别(从 OpenCL 1.2 开始):

  • 64 位整数支持是可选的。

  • 对 3D 图像的支持是可选的。

  • 对 2D 图像阵列写入的支持是可选的。如果 cles_khr_2d_image_array_writes嵌入式配置文件支持扩展,支持写入 2D 图像阵列。

  • 图像和图像数组的可用 channel 数据类型存在一些限制(特别是 channel 数据类型为 CL_FLOATCL_HALF_FLOAT 的图像仅支持CL_FILTER_NEAREST 采样器过滤模式)

  • 可用于图像和图像阵列的采样器寻址模式存在限制。

  • 您可能需要考虑一些浮点舍入更改。

  • 浮点加法、减法和乘法将始终正确舍入,除法和平方根等其他运算的精度各不相同。还有大量其他 float 需要注意。

  • 整数数据类型和浮点整数之间的转换在精度上有限制(但也有异常(exception))。

简而言之,这里的主要区别在于浮点精度。换句话说,嵌入式配置文件不需要遵守 IEEE 754 浮点规范,如果您正在进行大量依赖它的数值计算,这可能会成为问题。引用自规范:

This relaxation of the requirement to adhere to IEEE 754 requirements for basic floating- point operations, though extremely undesirable, is to provide flexibility for embedded devices that have lot stricter requirements on hardware area budgets.

还有一些在第 10 节中没有提及但值得注意的内容:虽然桌面配置文件必须具有可用于编译 OpenCL 内核的编译器,但嵌入式配置文件不需要提供。这可以通过 clGetDeviceInfo 文档看出,其中指出:

CL_DEVICE_COMPILER_AVAILABLE: Return type: cl_bool

Is CL_FALSE if the implementation does not have a compiler available
to compile the program source. Is CL_TRUE if the compiler is available.
This can be CL_FALSE for the embededed (sic) platform profile only.

有关 OpenCL Embedded Profile 规范的完整详细列表,请启动您的 PDF 阅读器,下载 OpenCL 规范(无论您正在开发哪个版本),然后找到相关部分。

关于opencl - OpenCL 和 OpenCL Embedded 配置文件之间的主要区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18527450/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com