将MKL链接到Anaconda中已安装的Numpy上?
>>> numpy.__config__.show() atlas_threads_info: NOT AVAILABLE blas_opt_info: libraries = ['f77blas', 'cblas', 'atlas'] library_dirs = ['/home/admin/anaconda/lib'] define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')] language = c atlas_blas_threads_info: NOT AVAILABLE openblas_info: NOT AVAILABLE lapack_opt_info: libraries = ['lapack', 'f77blas', 'cblas', 'atlas'] library_dirs = ['/home/admin/anaconda/lib'] define_ma
2 2024-01-26
编程技术问答社区
亚马逊EC2上的R包、gcc和BLAS
我正在尝试在我的Amazon EC2实例上安装RTEXTTOOLS.我正在使用R 3.1.1. (安装2014-07-10)与亚马逊的Linux AMI一起使用.我以根特权打开R,然后尝试以下内容: > install.packages('RTextTools') Installing package into ‘/root/R/x86_64-redhat-linux-gnu-library/3.1’ (as ‘lib’ is unspecified) also installing the dependencies ‘slam’, ‘tm’, ‘maxent’ trying URL 'http://cran.stat.ucla.edu/src/contrib/slam_0.1-32.tar.gz' Content type 'application/x-tar' length 46672 bytes (45 Kb) opened URL ====================
0 2024-01-24
编程技术问答社区
使用不同BLAS实现的NumPy的性能
我正在运行一种在Python中实现并使用numpy的算法.该算法最昂贵的一部分涉及求解一组线性系统(即呼叫numpy.linalg.solve().我提出了这个小基准: import numpy as np import time # Create two large random matrices a = np.random.randn(5000, 5000) b = np.random.randn(5000, 5000) t1 = time.time() # That's the expensive call: np.linalg.solve(a, b) print time.time() - t1 我一直在运行以下操作: 我的笔记本电脑,2013年末MacBook Pro 15",4个核心(sysctl -n machdep.cpu.brand_string)给我 intel(r)core(tm)i7-4750hq cpu @ 2.00ghz )) Amazo
4 2024-01-24
编程技术问答社区
MKL是否对cblas进行了*大顺序的优化?
我正在使用mkl cblas_dgemm,目前使用CblasRowMajor,CblasNoTrans,CblasNotrans,用于我的矩阵. 我知道c是一种专业语言,而dgemm是专栏的主要算法.我有兴趣知道,如果我链接到mkl>,则切换矩阵的排序是否会对cblas_dgemm算法产生任何影响. mkl是否足够聪明,可以在幕后做我尝试优化矩阵乘法的事情?如果没有,用mkl? 执行矩阵乘法的最佳方法是什么 解决方案 tl; dr:简而em>使用MKL订购(和其他BLAS实现). 我知道C是一排主要语言,而DGEMM是专栏的主要算法. dgemm是不是 a 列算法,它是用于计算具有常规矩阵的矩阵矩阵乘积的BLAS接口. DGEMM(和大多数Blas)的常见参考实现是/a>用fortran编写.假设列订购列的唯一原因是因为Fortran是列订单订单语言. DGEMM(和相应的BLAS 3函数)是不是专门针对 column-major data. DGEMM计算
4 2024-01-23
编程技术问答社区
什么是好的免费(开源)BLAS/LAPACK库,用于.net(C#)?
我有一个用C#编写的项目,我需要在矩阵上进行各种线性代数操作(例如lu-factorization). 由于该程序主要是为确认理论创建的原型,因此C#实现将足够(与可能更快的C ++ ONE相比),但是我仍然希望一个好的Blas或Lapack库可用来节省一些编码. 长话短说,任何人都可以推荐免费/开源blas或lapack库,用于.NET? 最好的问候 更新:找到 Math.net Numerics 今天,看起来很有趣,有人有任何经验吗? 解决方案 AMD的ACML是免费下载,但仅是二进制的,不是开源的,而不是本机代码,而不是.NET. 性能通常优于netlib.org代码,通常与英特尔的MKL大致相同 - 不是免费的iirc. 下载包括一个示例,演示了如何将其绑定到C#.与C#调用任何其他C或C ++库没有什么不同. 图书馆实现Blas,Lapack,FFTS和RNGS. http://developer.amd.com/cpu/Libr
2 2024-01-05
编程技术问答社区
CFFI没有加载依赖库?
我正在尝试使用SBCL的Blas/Lapack库(特别是试图获取(setq cffi::*foreign-library-directories* '("C:/cygwin64/bin/" "C:/cygwin64/lib/lapack/")) (CFFI:LOAD-FOREIGN-LIBRARY "CYGWIN1.DLL") (CFFI:LOAD-FOREIGN-LIBRARY "CYGGCCC_S-SEH-1.DLL") [..etc..] (CFFI:LOAD-FOREIGN-LIBRARY "CYGBLAS-0.dll") 作为解决方法,这并不糟糕,但是我不明白为什么CFFI:负载外部图书馆无法找到并加载依赖关系本身.我做错了吗? 解决方案 在您的情况下,它可能不是cffi,而是 as cygblas-0.dll在c:\cygwin64\lib\lapack目录中,它可能拥有的任何依赖项都是从同一目录,当前目录,Windows Directories以及PATH.
2 2023-12-06
编程技术问答社区
R的基本操作在Windows和Linux上产生不同的结果
我一直在R中运行一些代码,并且在测试中意识到Windows和Linux上的结果不同.我试图理解为什么会发生这种情况,但找不到答案.让我们用一个示例来说明它: 这些是一些重现性的硬编码值,总是从干净的环境开始.我检查了这些值的位表示在Windows和Linux机器中都是完全相同的: data
0 2023-12-05
编程技术问答社区
在Windows上将英特尔的数学内核库(MKL)与R连接起来
使用替代Blas作为R具有多个优点,请参见例如 https://cran.r-project.orgiject.orgiject.org/web/web/ppackages/gcbd/vignettes/gcbd.pdf . Microsoft r Open 安装/#sysreq 使用Intel的MKL而不是默认参考BLA来加快计算. 我的问题是: 链接英特尔的Mkl库**的确切步骤是什么手动 r **在Windows上的最新版本( 更新20-07-2016: 这是有关如何为r≥3.3.0的64位r构建基于OpenBlas的rblas.dll的非常详细的说明: http://www.avrahamadler.com/r-tips/build-openblas-for-windows-r64/ 解决方案 解决方案要比必须针对Windows上的英特尔MKL库更容易的解决方案只是 安装Microsoft R从 https://mran.microsoft.co
2 2023-12-05
编程技术问答社区
Numpy SVD在Mac OSX上似乎可以并行化,但在我的Ubuntu虚拟机上不行
我想运行以下脚本: #python imports import time #3rd party imports import numpy as np import pandas as pd def pd_svd(pd_dataframe): np_dataframe = pd_dataframe.values return np.linalg.svd(pd_dataframe) if __name__ == '__main__': li_times = [] for i in range(1, 3): start = time.time() pd_dataframe = pd.DataFrame(np.random.random((3000, 252 * i))) pd_svd(pd_dataframe) li_times.append(str(time.time() - sta
10 2023-11-20
编程技术问答社区
在debian wheezy上用pip在virtualenv中安装matplotlib时出现GotoBLAS错误
我正在尝试在Debian Wheezy上的Virtualenv中安装Matplotlib. 我收到以下消息: Running setup.py egg_info for package matplotlib GotoBLAS : Architecture Initialization failed. No initialization function found. ============================================================================ Edit setup.cfg to change the build options BUILDING MATPLOTLIB matplotlib: yes [1.3.1] python: yes [2.7.3 (default, Jan 2 2013, 13:
4 2023-11-19
编程技术问答社区
与dgemm/dgemv的矩阵-向量乘积
使用Lapack与C ++正在给我一个小的头痛. 我发现为fortran定义的功能有些偏心,因此我尝试在C ++上做出一些功能,以使我更容易阅读正在发生的事情. 无论如何,我没有得到矩阵矢量产品的工作原理. 这是程序的一小部分. smallmatlib.cpp: #include #include extern "C"{ // product C= alphaA.B + betaC void dgemm_(char* TRANSA, char* TRANSB, const int* M, const int* N, const int* K, double* alpha, double* A, const int* LDA, double* B, const i
4 2023-11-17
编程技术问答社区
dgemm_中的内存泄漏
我目前正在研究一个应用程序,该应用程序涉及大量打电话给Blas例程.通常会检查我发现的内存泄漏,我正在// I want to multiply 2 nxn matrices and put the result into C - an nxn matrix double zero = 0.0; double one = 1.0; double n; // matrix dimension char N = 'N'; dgemm_(&N, &N, &n, &n, &n, &one, A, &n, B, &n, &zero, C, &n); a,b和c是大小n*n的双场.阀门输出为: ==78182== 18 bytes in 1 blocks are definitely lost in loss record 2 of 30 ==78182== at 0xB936: malloc_zone_malloc (vg_replace_malloc.c:267) ==7818
2 2023-11-12
编程技术问答社区
未能将c代码与lapack/blas链接:未定义引用
我已经尝试了几个小时,这让我发疯.我得到的最后一个错误是: demo_cblas.c:(.text+0x83): undefined reference to `clapack_sgetrf' demo_cblas.c:(.text+0xa3): undefined reference to `clapack_sgetri' 我正在使用 编译代码 /usr/bin/gcc -o demo_cblas demo_cblas.c -L /usr/lib64 -l :libgfortran.so.3 -L /usr/lib64 \ -llapack -L /usr/lib64 -lblas 我尝试和不使用Libgfortran,带有不同的编译器GCC-33,GCC-47,GCC-48.测试代码不是来自我的,而是来自这个论坛... #include #include #include #include
14 2023-11-06
编程技术问答社区
矩阵稀疏性对Ubuntu 14.04中cblas sgemm的影响
我最近发现,如果矩阵中有大量的零数量,则cblas_sgemm的性能会极大地改善矩阵乘法.它的进步使它击败了库玛堂兄大约100次.这很可能归因于某些自动检测稀疏性以及通过CBLAS_SGEMM函数进行合适的格式转换. 不幸的是,其CUDA对应物(即Cublassgemm)没有表现出这种行为. 因此,问题是,我如何在矩阵上获得相同类型的优化,而可能具有大量的零零. cblas_sgemm使用什么技术来自动调整稀疏矩阵? 请,不建议cusparse/cusp等,因为 我不确定事先输入矩阵的稀疏性 我正在研究一种迭代算法,其中最初的几个迭代矩阵可能稀疏,但随着时间的流逝逐渐变得密集. 预先感谢 编辑以包括代码以复制上述方案 #include #include #include #include #include using namespa
10 2023-11-02
编程技术问答社区
cblas gemm的时间与输入矩阵值有关 | Ubuntu 14.04
这是我的较早的问题,但是我是因为我真的很沮丧,所以我要分开问,所以请不要投票! 问题:与同一cblas_sgemm呼叫密集矩阵相比 我知道GEMV是为矩阵矢量乘法设计的,但是如果花费更少的时间,为什么我不能将GEMM用于矢量矩阵乘法,尤其是对于稀疏矩阵 下面给出了简短的代表代码.它要求输入一个值,然后以该值填充向量.然后,它用其索引替换每32个值.因此,如果我们输入" 0",那么我们会得到一个稀疏的向量,但是对于其他值,我们会得到一个密集的向量. #include #include #include #include using namespace std; int main() { const int m = 5000; timespec blas_start, blas_end; long totalnsec; //total nano sec double totalsec,
12 2023-11-02
编程技术问答社区
怎样才能让NumPy在Ubuntu下使用OpenBlas?
我同时安装了Blas和OpenBlas: $ dpkg -l \*blas\* | grep ^i ii libblas-dev 1.2.20110419-7 amd64 Basic Linear Algebra Subroutines 3, static library ii libblas3 1.2.20110419-7 amd64 Basic Linear Algebra Reference implementations, shared library ii libopenblas-base
30 2023-11-02
编程技术问答社区
用LAPACK/BLAS安装numpy的最简单方法是什么?
我在Ubuntu 14.04. 我本来可以预期的: sudo apt-get install python-numpy 会奏效,但事实并非如此... 我试图检查的方式是通过做locate blas,没有发现任何相关的东西. 我想要一个不涉及我从源头编译的解决方案. 理想的解决方案是使用ubuntu存储库的东西. 解决方案 在Ubuntu 14.04及以后,将Blas和Lapack安装为Python-Scipy和Python3-Scipy的一部分,因此您需要安装Python-Scipy.在Ubuntu 18.04及以前打开终端和类型: sudo apt install python-scipy 此命令还将安装libblas3(基本线性代数子程序参考实现,共享库)和liblapack3(线性代数例程3-共享版本3-共享版本)作为依赖项,如果您将python -numpy安装为依赖项,它也将安装python -numpy '已经安装了它.
12 2023-11-02
编程技术问答社区
numpy.disutils.system_info.NotFoundError: 没有找到lapack/blas资源
问题:将numpy链接到纠正线性代数库.过程是如此复杂,以至于我可能正在第六次寻找解决方案,我不知道怎么了.我在Ubuntu 12.04.5. 我重新安装了Blas和Lapack,然后使用PIP重新安装了Numpy.我在系统环境中做到了这一点,然后在Virtualenv环境中尝试了.这些事情似乎都没有起作用. 这是我的numpy.__config__.show(): lapack_info: NOT AVAILABLE lapack_opt_info: NOT AVAILABLE openblas_lapack_info: NOT AVAILABLE blas_info: NOT AVAILABLE atlas_3_10_blas_threads_info: NOT AVAILABLE atlas_threads_info: NOT AVAILABLE blas_src_info: NOT AVAILABLE atlas_3_10_threads_
36 2023-11-02
编程技术问答社区
如何检查我的Ubuntu系统中的BLAS是哪个?
尤其是我想知道是否已经安装了Xianyi的OpenBlas. 我在几个PC上工作,并在过去几年中安装了几台PC,但是我丢失了没有安装的轨道.我需要知道哪个PC具有它,这不是我安装它的方式: git clone git://github.com/xianyi/OpenBLAS cd OpenBLAS make FC=gfortran sudo make PREFIX=/usr/local/ install 注意:我可能已经删除了OpenBlas目录,因此这不是可靠的指示器.而且我不知道如何卸载它,因此我不能尝试在每台PC上安装它,然后选择性地卸载(这很麻烦). 解决方案 in include dir中有openblas_config.h 您可以在那里找到OpenBlas版本. 即. grep OPENBLAS_VERSION /usr/local/include/openblas_config.h
10 2023-11-02
编程技术问答社区