我想知道并理解如何在 SYCL 中声明半精度缓冲区和指针,即通过以下方式 -
- 通过缓冲区类。
- 使用 malloc_device() 函数。
另外,假设我在主机端有一个现有的 fp32 矩阵/数组。如何将其内容复制到 GPU 端的 fp16 内存。
TIA
我想知道并理解如何在 SYCL 中声明半精度缓冲区和指针,即通过以下方式 -
另外,假设我在主机端有一个现有的 fp32 矩阵/数组。如何将其内容复制到 GPU 端的 fp16 内存。
TIA
对于半精度,您可以将sycl::half
其用作其中任何一个的模板参数。
accHalf[i] = static_cast<sycl::half>(accFloat[i]);
对于复制,您需要将数据从 fp32 转换为 fp16,您可以使用内核执行转换。这似乎是一个有据可查的解决方案问题,请参阅此线程。