问题标签 [arrayfire]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
871 浏览

c++ - OpenCL 中用于复杂数学问题的开源库,如 Matrix Mul、LU、FFT 等

现在通用GPU的使用很普遍。最基本的东西,矩阵乘法是 OpenCL 教程中的第一个。而不是为特定的 gpu 编写代码和内核代码。是否可以从 MKL 之类的库中调用它们。Arrayfire 在那里,但不是免费的。我正在尝试将我的模拟软件移植到具有 Matrix Mul、LU 分解、FFT 等的 GPU。我正在为这些寻找健壮的代码,而不是从头开始编写它们。我已经有了一个可以工作的 mat mul opencl 程序,但只是缺乏将它与我的代码集成的知识。在下一步我尝试使用 LU 时,是否有任何可以帮助我的 LU 代码。

0 投票
1 回答
1196 浏览

visual-studio-2010 - Arrayfire 出现问题:以代码 -1073741701 退出

我安装了 CUDA 5.0 和 Arrayfire 1.9,当我编译示例文件时,它们运行良好。

如果我尝试在不同的文件夹中设置我自己的项目,当我尝试使用与 af 命名空间相关的任何内容时会出现运行时错误。如果我将 hello-world 示例文件夹复制到另一个位置并尝试从那里编译它,我会得到同样的错误。这表明了一些东西,但我不知道是什么,因为我没有使用外部库的经验。

错误是:“应用程序无法正确启动(0xc000007b)。单击确定关闭应用程序。”

我的调试输出是:

我注意到我的 CUDA_LIB_PATH 和 CUDA_BIN_PATH 和 CUDA_INC_PATH 变量不存在(即使我创建了使用 CUDA 的全功能应用程序),所以我创建了这些变量(指向我的 Cuda 安装目录中它们各自的文件夹)。这并没有解决任何问题,没想到会这样。

当前环境变量:

前 3 个可以使用 \,尽管当我添加这些变量时没有任何改变,所以我认为这并不重要。

我想我在创建 VS2010 项目时遗漏了一些关键步骤。StackOverflow 告诉我它可能是缺少运行时 .dll。因此,这里最重要的是这些示例可以正常工作,但在不同的位置,它们却不能。我认为这将其缩小到一些定义为相对而不是绝对的包含路径。

不确定它是否相关,但无论如何我都会在这里发布:

使用具有 1GB 内存的 NVIDIA geForce 540M。Intel i5 2410M 双核 CPU。(华硕k53sv)

提前致谢。

更新:

遵循这些确切步骤会产生以下错误:

更新:

我会尝试让它在包含 x64 构建配置的 VS2010 Professional 中工作

最终更新:好的,所以如果我必须向过去的自己解释这一点(所以这篇文章对有同样错误的人有一些价值)我会这样说:-硬编码包含的东西,因为环境变量的行为很奇怪 -push apply在 VS2010 中的每一个配置步骤之后(或者它们不会被保存)-get VS2010 Pro所以你可以选择 x64 平台(这很关键,可能导致第一个错误,2012 不能正常工作)

0 投票
0 回答
771 浏览

gpgpu - 一堆 cuComplex.h 和 cmath 错误

我正在尝试使用 arrayfire 在 VSC++ 中编译我的代码,以便将矩阵乘法移植到 gpu。我收到所有源文件的以下一堆错误。发生了什么!我很确定这是一个愚蠢的错误,但请善意地为我指出这一点。

使用命名空间 af;

** * ** * ** * ** * 输出 * ** * ** * ** * *

0 投票
1 回答
377 浏览

search - ArrayFire 帧搜索算法崩溃

一般来说,我是 ArrayFire 和 CUDA 开发的新手,几天前我在使用 Thrust 失败后才开始使用 ArrayFire。我正在构建一个基于 ArrayFire 的算法,该算法应该在存储到设备内存中的数十万个 32x32 帧的数据库中搜索单个 32x32 像素帧。首先,我初始化了一个矩阵,该矩阵具有 1024 + 1 个像素作为行(我需要一个额外的像素来保留帧组 ID)和预定义数量(本例为 1000)的帧,由列索引。

这是执行搜索的函数,如果我取消注释“pixels_uint32 = device_frame_ptr[pixel_group_idx];” 程序崩溃。该指针似乎是有效的,所以我不明白为什么会发生这种情况。也许我不知道以这种方式访问​​设备内存?

这是带有注释行的控制台输出:

arrayfire/examples/helloworld$ ./helloworld

ArrayFire v1.9.1(64 位 Linux,构建 9af23ea)

许可证:服务器 (27000@server.accelereyes.com)

CUDA 工具包 5.0,驱动程序 304.54

GPU0 Tesla C2075,5376 MB,计算 2.0

内存使用:5312 MB 可用空间(总共 5376 MB)

设置 blob id。

完成设置 blob id。

时间:0.03 秒。


这是未注释行的控制台输出:

arrayfire/examples/helloworld$ ./helloworld

ArrayFire v1.9.1(64 位 Linux,构建 9af23ea)

许可证:服务器 (27000@server.accelereyes.com)

CUDA 工具包 5.0,驱动程序 304.54

GPU0 Tesla C2075,5376 MB,计算 2.0

内存使用:5312 MB 可用空间(总共 5376 MB)

设置 blob id。

完成设置 blob id。

分段故障


在此先感谢您对此问题的任何帮助。我真的尝试了一切,但没有成功。

0 投票
1 回答
2276 浏览

c++ - 由于头文件中的语法错误导致编译错误

我有一个依赖于几个包含文件的程序。当我按照下面显示的顺序定义包含时,程序编译得很好。

但是,当我切换最后两个包含时,如下所示

我得到编译器错误:

1>d:\libraries\tbb41\tbb41_20130613oss\include\tbb\task.h(765): 错误 C2059: 语法错误: '{' 1>d:\libraries\tbb41\tbb41_20130613oss\include\tbb\task.h( 765): 错误 C2334: '{' 前面的意外标记;跳过明显的函数体

这是出乎意料的,我想解决它。所有包含都来自库(OpenCV 和 ArrayFire)。关于可能是什么原因以及如何解决此问题的任何建议?

编辑这是task.h的相关部分:

在第 765 行,IDE 抱怨{Error: expected an identifier

0 投票
1 回答
728 浏览

arrayfire - 使用 ArrayFire 将复数从主机复制到设备

我正在尝试使用 ArrayFire 框架将复数数组从主机复制到设备:

但由于数据类型不兼容,它会产生编译错误。我究竟做错了什么?

我可以将实部和虚部分别复制到设备中,以便在 gpu 内存中创建复数,但这很昂贵,而且我也不知道如何在 ArrayFire 框架中从两个数字构造复数。

如果有人能在这件事上帮助我使用 ArrayFire 框架,我将不胜感激。

0 投票
0 回答
234 浏览

arrayfire - 使用 arrayfire 进行下采样

如何使用 arrayfire 对时间信号进行下采样?为了避免抗锯齿,我应该在丢弃样本之前做一个低通滤波器,但我在 API 中没有看到类似的东西。

谢谢。

0 投票
1 回答
215 浏览

c++ - arrayfire翻转抛出异常

我正在尝试翻转大小为 [249 1 50 20] 的矩阵,这是代码:

我得到以下异常:

我尝试翻转flip(delta, 2)然后我得到:

我究竟做错了什么?谢谢。

0 投票
1 回答
146 浏览

arrays - Fortran/Arrayfire 尺寸标注问题

我目前正在使用 Arrayfire 来加速 Fortran CFD 求解器。我们实现 Fortran 数组的方式意味着二维 Fortran 数组由 (N,M,1) 表示,而不仅仅是 (N,M),允许可分配数组处理 2 维或 3 维参数。但是,当其中一个被复制到设备以成为 Arrayfire 阵列时,它似乎自动被赋予尺寸 (N,M) 而不是 (N,M,1)。当数组复制回主机时,这会导致尺寸不匹配。

有没有办法改变这种行为?重写大多数求解器以区别对待二维数组是相当棘手的。

这是一个显示此行为的测试用例:

我也在 Arrayfire 论坛上问过这个问题,但只是想知道是否有其他人遇到过这个问题。

编辑:这不再是一个问题,因为只有测试用例是使用 2D 数组执行的。

谢谢,哈利

0 投票
1 回答
466 浏览

macos - 无法在 OS X 10.9 下运行 ArrayFire helloworld 示例

我在 MAC OS X 10.9 下下载并安装了以下软件包:

ArrayFire-maci-1.9-20121120.zip

cuda-mac-5.5.28_10.9_64.pkg

成功构建 helloworld 示例后,我得到以下输出:

helloworld.cpp -o helloworld

但是,当尝试运行 helloworld 可执行文件时,出现以下错误:

但是根据 otool 输出,dylib 库的版本是正确的:

/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation(兼容版本 150.0.0,当前版本 635.21.0) /usr/lib/libstdc++.6.dylib
(兼容版本 7.0.0,当前版本 52.0. 0)

有人知道如何克服这个问题吗?