问题标签 [nvblas]

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 回答
936 浏览

r - R 和 nvblas.dynlib(在 Mac 上)

我通过CRAN在我的 Mac 上安装了 R 。我还通过homebrew安装了 openblas 。我可以在 BLAS 实现之间切换,如下所示:

参考 blas(我认为是 netlib):

vecLib(Apple 的 BLAS):

openblas(通过自制软件提供):

在 3 个选项中,openblas 似乎是最快的选项(尽管 vecLib 紧随其后)。

但是,我想尝试更多的力量:

更多力量

从 NVIDIA 安装了 CUDA 6.5。这会将一堆文件下载到/Developer/NVIDIA/并将其中一些链接到/usr/local/cuda. 我将我的 cuda 环境变量设置为~/.profile

然后,我使用以下条目制作了一个“/Users/me/nvblas.conf”:

理论上,这应该指向nvblas.dyliblibopenblas.dylib包含在 BLAS 中的函数nvblas.dylib

到目前为止,一切都很好。下一步是将 R 链接到nvblas.dylib

但是,当我启动 R 时,似乎libRlapack.dylib找不到它正在寻找的所有 BLAS 函数:

openblas 本身可以正常工作,并提供 R 正在寻找的所有功能,所以我认为错误是libnvblas.dylib没有正确回退到libopenblas.dylib.

无论我指向什么 CPU BLAS libnvblas.dylib(netlib、vecLib、openblas),都会发生这种情况。谁能帮我解决这个错误?我还需要在我的路径或链接中添加什么才能libnvblas.dylib在 Mac 上正确使用 R 吗?

相关的错误可能是:

在我看来,nvblas 没有转发_dasum_到 openblas。

/编辑:

产量:

0 投票
1 回答
652 浏览

cuda - NVBLAS 与英特尔 Fortran 编译器

尝试将 NVBLAS 与英特尔 Fortran 编译器一起使用时,我似乎遗漏了一些东西。

当我看到运行时 NVBLAS 初始化的反馈时,我似乎正在正确链接和使用 nvblas.conf。但是,NVBLAS 似乎没有拦截对 DGEMM 的调用,因为只执行了 CPU 实现。尽管使用了:

在 nvblas.conf 中(或完全删除它)。

如果我通过删除禁用对 CPU BLAS 实现的访问:

正如我所料,程序在运行时崩溃。

我目前使用的编译器选项如下所示,我也尝试过手动链接 MKL,但结果相同。

调用 DGEMM 的示例如下:

不幸的是,我目前仅限于使用 Intel 编译器,但该限制将很快解除(此时我将使用 CUDA Fortran 来优化数据移动)。

0 投票
1 回答
489 浏览

matrix - NVBLAS silently fails for semi-large matrix multiplication

I followed the instructions here to run octave with nvblas. I have CUDA toolkit 7.5 installed and a tesla k40c GPU. To start octave with nvblas, I used LD_PRELOAD=libnvblas.so octave. I then ran the following simple code:

which produces a matrix with reasonable values. However, if I increase N to 512, or any number over 512, I get all zeros (or very small numbers) back as a result.

If I use OpenBLAS this does not happen. The matrices should be small enough that they fit in the card's RAM (12GB). Any idea why this might happen?

Note: If I make A and B identity matrices this does not happen, but it still happens with A = B = ones(N,N).

0 投票
0 回答
527 浏览

c++ - Armadillo + VS 2015 - 如何与 NVBLAS 链接

根据标题,有没有一种简单的方法可以在 VS 2015 中将犰狳与 NVBLAS 联系起来?

目前我已经在 VS 中安装了 MKL,一切正常。我已经在 VS 中安装了带有扩展名的 CUDA Toolkit 8,我可以以某种方式指示 Armadillo 在 CUDA 中采用(可用的)BLAS 例程吗?

0 投票
0 回答
354 浏览

gpu - 是否有使用矩阵矩阵乘法的梯度下降实现?

我在Octave for ML中使用以下梯度下降实现。

我首先尝试增加 CPU 内核的数量并使用 OpenBlas 运行 Octave 多线程,但仍然没有得到我想要的结果,所以我尝试使用 Nvidia 的工具包和他们的 Tesla K80 GPU

我正在按照本文中的说明使用 nvblas 中的 drop 加载 Octave:

GNU Octave 的嵌入式加速

当我检查 nvidia-smi 时,我发现 GPU 处于空闲状态,尽管我使用矩阵矩阵乘法进行的测试产生了 ~9 teraflops

后来我了解到,根据 nvblas 文档,不支持用于上述实现的矩阵向量乘法

所以我的问题是有一个梯度下降实现,它使用矩阵矩阵乘法或等效的东西可以代替我拥有的梯度下降实现?

0 投票
0 回答
61 浏览

apache-spark - Spark MLlib 单精度分布式矩阵

是否可以在 spark 中创建包含单精度条目的分布式块矩阵?

根据我从文档中收集到的信息,blockmatrix 的 scala/java 实现需要一个 mllib.Matrix 对象,该对象将值保存为双精度值。有没有办法绕过这个限制?

背景:我使用 GPU 来加速 Sparks 分布式矩阵乘法例程,当乘以双精度矩阵而不是单精度矩阵时,我的 GPU 的执行速度要慢 20 倍。

0 投票
1 回答
447 浏览

armadillo - dgemm nvblas gpu 卸载

我有一个执行矩阵乘法的测试应用程序,并试图用 nvblas 卸载到 gpu。

我编译代码如下。

中央处理器

图形处理器

当我使用 4096 4096 4096 运行 a.cpu.out 和 a.cuda.out 时,它们都需要大约 11 秒的时间。我没有看到 a.gpu.out 的时间减少。在 nvblas.conf 中,我将所有内容都保留为默认值,除了 (a) 更改 openblas (b)auto_pin 内存启用的路径。我看到 nvblas.log 说使用“设备 0”而没有其他输出。nvidia-smi 没有显示 gpu 活动有任何增加,而 nvprof 显示了一堆 cudaMalloc、cudamemcpy、查询设备功能等。但是不存在任何 gemm 调用。

a.cuda.out 上的 ldd 显示它与 nvblas、cublas、cudart 和 cpu openblas 库链接。我在这里犯了什么错误吗?

0 投票
0 回答
330 浏览

r - 在 Windows 上的 R 中使用 nvBLAS?

我无法让 nvBLAS 在 R 中工作。我在 Windows 10 机器上使用 RStudio,我不知道如何将 nvBLAS 和原始 Rblas 链接在一起,以便 R 启动两者。从 nvBLAS 文档中:

要使用 NVBLAS 库,除了原始 CPU Blas 之外,用户应用程序必须重新链接到 NVBLAS(技术上只需要 NVBLAS,除非应用程序使用了一些 NVBLAS 不支持的 BLAS 例程)。为了确保链接器链接到 NVBLAS 的公开符号而不是来自 CPU Blas 的符号,需要在链接命令行上将 NVBLAS 库放在 CPU Blas 之前。

我究竟如何在 Windows 中做到这一点?警告,我是一个非常可靠的 R 用户,但我绝不是 R 专家或计算机科学家。理想情况下,我也希望避免为此使用 Ubuntu 构建。

0 投票
0 回答
287 浏览

c++ - 如何在 Windows 上将犰狳与 nvblas 链接

所以我想将 mlpack ( https://github.com/mlpack/mlpack ) 与 nvblas 一起使用。现在 mlpack 使用犰狳。

我一直在网上寻找一份指南,该指南将向我解释如何使用 nvblas 设置犰狳和 mlpack,但我找不到(尤其是在 Windows 上解释它的)

目前我正在使用 OpenBLAS、VS17 和 CMake 将以下参数与 CMake Armadillo 一起使用:

毫升包:

0 投票
0 回答
59 浏览

visual-studio - 您如何优先考虑将 Visual Studio 中的 NVBLAS 链接到 Armadillo?

我试图优先考虑 nvblas 的链接而不是 blas 与犰狳一起工作。根据我的阅读,我可以看到这些库需要按以下链接顺序放置:Lapack NVBlas Blas

我已经在我的 Visual Studio 项目中做到了这一点,但是矩阵乘法没有在 GPU 上运行。谁能帮我解决这个问题?我正在使用 Visual Studio 2019、Windows 10 和 Armadillo。我也用 mlpack 试过犰狳。