问题标签 [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.
java - 将 jBLAS 与 NVBLAS 一起使用
我已经用 NVBLAS 编译了 jBLAS 和一个有点 hacky 的解决方案,因为配置脚本没有正确找到库。我像这样手动编辑了configure.out
jBLAS 文件,以包含 NVBLAS 库。
然后我运行命令make clean all
,并mvn clean package
按照此处记录。测试成功通过,但程序在退出时导致分段错误。
我决定运行mvn clean package -DskipTests
,因为测试似乎通过了正常,只是程序在终止时导致了分段错误。然而,当我在我的 Java 项目中使用该库时,nvblas.log
发现尽管 NVBLAS 拦截了对 BLAS 例程的调用,但它们实际上是在 CPU 而不是 GPU 上执行的。运行nvprof --print-gpu-summary
我的程序也得出了同样的结论。
内容nvblas.log
如下:
我真的不知道该怎么做,我希望有人可以提供任何建议,这似乎真的很糟糕。
r - makeForkCluster 和 nvblas(由 LD_PRELOAD 加载)
我想加快一个缓慢的 R 脚本。
我测试了两种不同的策略:
- 使用makeForkCluster的多线程。这个策略让我提高了性能,减少了执行时间。
- GPU 卸载。我正在使用替换 blas 库。( nvblas )。为了注入库,我使用LD_PRELOAD方法。
这两种方法给了我很好的性能提升,但我想同时使用它们,因为 GPU 没有完全加载。
我尝试将 MT makeForkCluster 和 nvblas 一起使用。我注意到 nvblas 不会拦截来自线程的调用(由 makeForkCluster 分叉)。
我不明白为什么会这样,如果我从 makeForkCluster 切换到 makeCluster 它可以工作。但我想使用 Fork 方法(不需要序列化)。
示例代码:
你有什么建议吗?