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