【问题标题】:Cast ArrayFire Array Data from f64 to f32 in C++在 C++ 中将 ArrayFire 数组数据从 f64 转换为 f32
【发布时间】:2021-01-12 01:41:46
【问题描述】:

我有一个 dtype=f64 的 ArrayFire 数组,我需要将其转换为 dtype=f32。除了转换为主机数组并通过执行static_cast 进行迭代之外,我不确定如何执行此操作。我确信有更好的方法。我找到了af_cast,但它似乎只是C接口的一部分。

// Example, double precision array
af::array A_double(100, 1, f64); // f64 = double precision

// Need to cast this to an f32 array somehow...
af::array A_single = cast<f32>(A_double); // <-- something like this?

【问题讨论】:

  • 你能显示一些上下文代码吗?
  • C++ 转换不能一次转换整个数组,一次只能转换一个元素。如果 ArrayFire 有这种能力,那只能复制原件。

标签: c++ arrayfire


【解决方案1】:

答案竟然简单得令人尴尬。 ArrayFire 库有一个名为 as 的函数,我不知道它在文档中被忽略了。

// Example, double precision array
af::array A_double(100, 1, f64); // f64 = double precision

// Cast to an f32 array
af::array A_single = A_double.as(f32);

这是documentation的链接。

【讨论】:

  • 很高兴听到它成功了!有什么我们可以做得更好的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多