在 SYCL 中声明半精度浮点内存

Declaring Half precision floating point memory in SYCL

我想知道并理解如何通过以下方式在 SYCL 中声明半精度缓冲区和指针 -

另外,假设我在主机端有一个现有的 fp32 矩阵/数组。如何将其内容复制到 GPU 端的 fp16 内存。

TIA

对于半精度,您可以只使用 sycl::half 作为其中任何一个的模板参数。

accHalf[i] = static_cast<sycl::half>(accFloat[i]);

对于复制,您需要将数据从 fp32 转换为 fp16,您可以使用内核来执行转换。这似乎是一个有据可查的解决方案问题,see this thread