使用 CUDA 或 OpenCL 后端在 ArrayFire 中进行列混沌重新排序

问题描述 投票:0回答:1

我有多个数组作为单独的字段,当我将它们连接在一起时,不知何故,特定列与另一列奇怪地切换。

所有列都有自己正确的数据,但在连接时会被打乱。我还使用了 af::eval 但没有解决问题。请注意,这是完全随机的,有时如果我评论打印行,它就会起作用! (CPU后端没问题)

信息:ArrayFire v3.9.0 使用统一后端作为 CUDA。

arrayfire
1个回答
0
投票

我遇到了类似的问题,cuda 后端混淆了我的数据。 我不确定我的解决方案是否会造成性能损失,但以下内容对我有用。

const auto dim0           = transformedPc1.dims(0) + transformedPc2.dims(0);
return af::moddims(af::join(0, af::flat(transformedPc1), af::flat(transformedPc2)), af::dim4(dim0, 3));

基本上,我首先展平两个数组,然后将它们连接起来。加入后,我修改了尺寸以匹配我之前的尺寸。希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.