我最近在 GTC 上看到了 arrayfire 的演示,我想我会尝试一下。以下是我在尝试使用它时遇到的一些问题。我正在使用 AMD App SDK 2.9-1 的 OpenCL 在 Windows 7 系统上运行 Visual Studio 2013。
最大的挫折是我无法在调试器中查看数组对象的状态以查看其中的数据。我必须依赖 af_print 语句。这很烦人。有没有办法配置调试器让我看到数组中的数据而不必打印出来?
将数据放入数组后,如何将值作为标准数据类型取回。一个例子如下所示。我正在尝试将元素 5,0 作为双倍取回。示例中的行不起作用,我无法将其转换为任何标准类型。我唯一可以分配给它的是另一个数组。如何找回我的数据?
array test = constant(0, dim4(10, 2));
test(span, 1) = 10.5;
double val = test(5, 0); //This does not compile.
有没有一种简单的方法可以将数组序列化/反序列化到磁盘?我没有看到这样做的方法,并且由于我无法将这些值作为标准类型取回,因此我不确定如何将其保存。
我正在浏览您提供的降雨教程示例,但它似乎给出了不正确的结果。例如,第 52 行有这个打印语句“af_print(rainfall);”。它应该打印出每个站点的降雨量,但其中包含所有 8 个,这是不正确的。我对 cpu 和 opencl 版本都进行了尝试,并得到了相同的结果。其他一些计算也是不正确的。代码看起来应该是正确的,所以这是一个错误还是代码错误?