问题标签 [viennacl]

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 投票
1 回答
1134 浏览

ubuntu - 在 Ubuntu 上安装 ViennaCL

我已经使用cmake .make在 Ubuntu 11.04 上运行了一些生成的测试成功地构建了 ViennaCL。但是如何安装它以及如何包含它并将其与我的应用程序链接?它不应该生成自动安装在/usr/local/includeand下的头文件和共享库/usr/local/lib吗?Makefile 不包含任何install目标。

/诺德洛夫

0 投票
1 回答
275 浏览

opencl - OS X 上的 ViennaCL:无法将数据复制到 GPU

我只是在学习与 ViennaCL 合作。在 CPU 上的第一次尝试运行良好,现在我正在尝试使用 OpenCL。但是,我无法将数据传输到 GPU 上——虽然似乎创建了矩阵,但它们没有得到任何内容:

在此之后,data_gpu(0,0)是,0但我相信它应该是1

我正在用g++ nocopy.cpp -framework OpenCL. 我将 OS X 与提供的 OpenCL 驱动程序一起使用。

我在这里做错了什么?

编辑:删除VIENNACL_WITH_OPENCL解决了问题,但不是我想要的。

0 投票
0 回答
130 浏览

viennacl - 如何使用 Visual C++ 2010 构建 ViennaCl 项目?

我已经使用 mingw32-make 成功构建了 ViennaCL,并在 Windows 7 x64 上运行了它生成的一些测试。当我尝试使用 Visual C++ 2010 Ultimate 构建一个新的 Viennacl 项目时,链接器给出了以下答案:

错误 LNK2019: riferimento al simbolo

esterno _clGetPlatformIDs@12 非 risolto nella funzione “类 std::vector > __cdecl viennacl::ocl::get_platforms(void)”

代码:

PS对不起链接器的意大利语回答。基本上,链接器找不到函数_clGetPlatformIDs。提前致谢。彼得罗。

0 投票
1 回答
802 浏览

c++ - 在 ViennaCL 中从 std::vector 转换为 ublas::compressed_matrix

我正在做一些计算,并将得到的 Jacobian NxN 矩阵和右手边向量(n)传递给 boost 的 ublas 并最终传递给 ViennaCL。

使用 copy() 向量没有问题,但是,矩阵被证明是困难的。任何帮助将不胜感激

我尝试了许多变体并查看了文档:

http://ublas.sourceforge.net/refdoc/classboost_1_1numeric_1_1ublas_1_1compressed__matrix.html

此外,ViennaCL 的示例对我不起作用:

http://viennacl.sourceforge.net/viennacl-examples-sparse-matrix.html

经过几个小时的谷歌搜索后,我决定在这里发帖,希望其他人可以破解它,以便下一个人更容易找到。

0 投票
0 回答
240 浏览

c++ - 在 ViennaCL 中测量自定义内核执行时间

我有一个自定义内核通过带有 OpenCL 后端的 ViennaCL 执行。虽然我知道如何在一般情况下对 ViennaCL 进行基准测试(在文档中提供)以及如何在直接使用事件执行 OpenCL 内核执行时间时执行它(在 OpenCL 文档和互联网上的大量示例中都有介绍),但我在关于如何将两者结合起来的损失。

考虑这个例子:

到目前为止,我想出的是使用 Boost 计时器来测量 ViennaCL 通过 PCI-Express 将数据发送到设备、排队和完成内核执行所需的完整时间。虽然这是可以接受的(因为我的基准测试非常依赖于数据发送速度,所以数据相当大),我还想测量内核的实际执行在这方面花费的时间。

这是一个学术项目,因此准确的测量可以帮助我成败。

0 投票
1 回答
792 浏览

c++ - ViennaCL:矩阵向量积失败

我正在尝试使用 ViennaCL 库用 OpenCL 做一个简单的矩阵向量产品。

这是我的主要内容:

之后,我的 stl_c 向量的第一个系数正确计算,但每 9 个其他系数为0. 当我将尺寸更改为较高的值时,我在向量的开头得到了多个正确的 coef,但对于每个其他的 coef,我仍然得到一堆零。

我猜我的一些副本是以错误的方式完成的,但也许我的 prod 操作是有原因的(本地/全局大小问题,但我认为 ViennaCL 会处理这一切)

知道我做错了什么吗?任何帮助或建议将不胜感激。

(我在 VS 2012 上运行代码,我的 GPU 是 NVIDIA Geforce gtx 670)

0 投票
2 回答
644 浏览

c++ - 具有临时消除功能的 C++ OpenCL 矩阵库

犰狳矩阵库写道

犰狳采用延迟评估方法将多个操作合并为一个,并减少(或消除)对临时人员的需求。在适用的情况下,优化操作顺序。通过递归模板和模板元编程实现延迟评估和优化。

这意味着您可以编写如下操作

并且没有创建临时变量。(注意 % 是犰狳中的元素乘积运算)

我希望能够以类似的风格为 OpenCL 应用程序编写代码。

我看过的库是 VexCL、ViennaCL、Boost.Compute 和 clBLAS。VexCL 和 Boost.Compute 甚至不提供基本的矩阵功能,例如乘法。clBLAS 不能用作模板库,因此您需要手动调用这些操作。ViennaCL 提供了我需要的所有操作,但它似乎无法将它们链接在一起。

例如

无法编译。

我认为可能有可能使用 VexCL 根据 Armadillo 决定的操作自动生成内核,但我看不出有任何方法可以直接进行。

有什么建议么?

0 投票
0 回答
97 浏览

python - PyViennaCL 返回段错误

我已经开始使用 OpenCL 进行编程,到目前为止,我使用的是 pyopencl 包,它非常适合轻松计算,但很难计算更高级的东西。想法是使用高级替代方案 pyViennaCL。我已经安装了 ViennaCL 和 pyOpenCL(通过 pip),我也安装了 pyViennaCL。当我从 ViennaCL 页面运行官方示例时:

我得到这个输出:

怎么了?

0 投票
1 回答
948 浏览

opencl - clBLAS 和 ViennaCL 的区别?

查看那里的 OpenCL 库,我试图完全掌握每个库。特别是一个库是clBLAS。他们的网站声明它实现了 BLAS 1、2 和 3 级方法。这很好,但ViennaCL也有 BLAS 例程、线性代数求解器、支持 OpenCL 和 CUDA 后端,并且只是标题。在我看来,目前似乎没有理由在 ViennaCL 上使用 clBLAS 但我想知道是否有人有任何理由为什么会在 ViennaCL 上使用 clBLAS

虽然相似,但这是对之前比较 VexCL、Thrust 和 Boost.Compute 的问题的扩展。

0 投票
1 回答
288 浏览

c++ - 复数的维也纳

我正在使用viennacl用显卡求解线性方程组(AX = B)。此外,代码使用armadillo

我的方程组有复数。所以问题是:我可以使用 viennacl 求解方程组(复数)吗?

上面是一个带有实数的工作代码示例。

复杂版本的代码: