0

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

  • 通过缓冲区类。
  • 使用 malloc_device() 函数。

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

TIA

4

1 回答 1

1

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

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

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

于 2022-01-11T16:41:30.460 回答