问题标签 [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.
ubuntu - 在 Ubuntu 上安装 ViennaCL
我已经使用cmake .
并make
在 Ubuntu 11.04 上运行了一些生成的测试成功地构建了 ViennaCL。但是如何安装它以及如何包含它并将其与我的应用程序链接?它不应该生成自动安装在/usr/local/include
and下的头文件和共享库/usr/local/lib
吗?Makefile 不包含任何install
目标。
/诺德洛夫
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
解决了问题,但不是我想要的。
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。提前致谢。彼得罗。
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
经过几个小时的谷歌搜索后,我决定在这里发帖,希望其他人可以破解它,以便下一个人更容易找到。
c++ - 在 ViennaCL 中测量自定义内核执行时间
我有一个自定义内核通过带有 OpenCL 后端的 ViennaCL 执行。虽然我知道如何在一般情况下对 ViennaCL 进行基准测试(在文档中提供)以及如何在直接使用事件执行 OpenCL 内核执行时间时执行它(在 OpenCL 文档和互联网上的大量示例中都有介绍),但我在关于如何将两者结合起来的损失。
考虑这个例子:
到目前为止,我想出的是使用 Boost 计时器来测量 ViennaCL 通过 PCI-Express 将数据发送到设备、排队和完成内核执行所需的完整时间。虽然这是可以接受的(因为我的基准测试非常依赖于数据发送速度,所以数据相当大),我还想测量内核的实际执行在这方面花费的时间。
这是一个学术项目,因此准确的测量可以帮助我成败。
c++ - ViennaCL:矩阵向量积失败
我正在尝试使用 ViennaCL 库用 OpenCL 做一个简单的矩阵向量产品。
这是我的主要内容:
之后,我的 stl_c 向量的第一个系数正确计算,但每 9 个其他系数为0
. 当我将尺寸更改为较高的值时,我在向量的开头得到了多个正确的 coef,但对于每个其他的 coef,我仍然得到一堆零。
我猜我的一些副本是以错误的方式完成的,但也许我的 prod 操作是有原因的(本地/全局大小问题,但我认为 ViennaCL 会处理这一切)
知道我做错了什么吗?任何帮助或建议将不胜感激。
(我在 VS 2012 上运行代码,我的 GPU 是 NVIDIA Geforce gtx 670)
c++ - 具有临时消除功能的 C++ OpenCL 矩阵库
犰狳矩阵库写道
犰狳采用延迟评估方法将多个操作合并为一个,并减少(或消除)对临时人员的需求。在适用的情况下,优化操作顺序。通过递归模板和模板元编程实现延迟评估和优化。
这意味着您可以编写如下操作
并且没有创建临时变量。(注意 % 是犰狳中的元素乘积运算)
我希望能够以类似的风格为 OpenCL 应用程序编写代码。
我看过的库是 VexCL、ViennaCL、Boost.Compute 和 clBLAS。VexCL 和 Boost.Compute 甚至不提供基本的矩阵功能,例如乘法。clBLAS 不能用作模板库,因此您需要手动调用这些操作。ViennaCL 提供了我需要的所有操作,但它似乎无法将它们链接在一起。
例如
无法编译。
我认为可能有可能使用 VexCL 根据 Armadillo 决定的操作自动生成内核,但我看不出有任何方法可以直接进行。
有什么建议么?
python - PyViennaCL 返回段错误
我已经开始使用 OpenCL 进行编程,到目前为止,我使用的是 pyopencl 包,它非常适合轻松计算,但很难计算更高级的东西。想法是使用高级替代方案 pyViennaCL。我已经安装了 ViennaCL 和 pyOpenCL(通过 pip),我也安装了 pyViennaCL。当我从 ViennaCL 页面运行官方示例时:
我得到这个输出:
怎么了?