首页
学习
活动
专区
圈层
工具
发布

安装dlib成功但import时显示undefined symbol:cblas_ddot

使用yum安装blas和lapack也没用,可能是因为我是用python3安装的dlib,而yum对应的是python2。...于是参考一些资料自己动手编译安装blas、cblas和lapack,安装完成后依然提示此错误。...其尝试从多种方法查找系统的的BLAS库,在我的情况中,该代码找到了CBLAS,然后进行进一步检测是否有 cblas_ddot 时没找到,我的用CBLAS中明明有cblas_ddot,且在终端用命名“locate...后来发现程序会检查openblas,也就是说如果安装openblas也应该有用: 抱着死马当活马医的心态试了试安装openblas,步骤是: 从www.openblas.net下载tar压缩包 解压后从命令号进入文件夹...,执行“make”命令进行编译,这一步需要一些时间 编译完后执行“make install”命令进行安装 安装完openblas后再执行dlib的安装,发现不再提示“BLAS library does

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    走进向量计算:从源码编译 OpenBLAS

    这是因为泛 AI 领域离不开矩阵计算,而 OpenBLAS 是全球前三的开源矩阵计算库。本篇文章,我们就来聊聊 OpenBLAS 在 Linux 和 macOS 环境中的编译和构建。...除了和上文一样,从官方 GitHub 发布页面下载预构建好的二进制文件之外,还能使用 apt install 来下载安装 Ubuntu 软件包仓库中的新版本 OpenBLAS 的软件包[4]。...OpenBLAS 相关的路径,寻找其中包含 /usr/lib/libopenblas.so.0 和 /usr/include/openblas_config.h 文件的路径即可。...除了 faiss 之外,在全球两大框架 PyTorch 和 Tensorflow 的社区里,也有不少和 OpenBLAS 相关的内容,比如这里[21]和这里[22],可惜的是,在缺少官方运营支持和维护的情况下...最后 好啦, OpenBLAS 的编译和项目的故事就聊到这里。 接下来更新的内容里,我会持续更新 “向量数据库” 行业中的产品,并进行实战分享。

    1.4K30

    走进向量计算:制作 OpenBLAS Docker 预构建产物镜像

    所以,如果我们想搞定支持多种 CPU 架构的 Milvus 容器镜像,自然要先解决多种架构和类型硬件的 OpenBLAS 在容器内的构建。...目前 Milvus 官方镜像使用的 Ubuntu LTS 版本 18.04 环境下的 OpenBLAS:0.3.9 和 0.3.20,满足当前版本的 Milvus ,能够平滑切换 OpenBLAS 依赖安装...执行命令,经过漫长的等待之后,将能够看到类似下面的输出,包含了一大堆“测试通过”的日志信息和容器“构建完毕”的提示: ... OPENBLAS_NUM_THREADS=2 ....同理,我们可以根据切换参数的内容,来完成 Ubuntu 20.04 和 Ubuntu 18.04 系统版本下 OpenBLAS 0.3.9 和 0.3.20 两个版本的镜像构建: docker build...遇到的问题类似,0.3.9 版本和一些 Ubuntu 发行版中,我们会在构建过程和结果中遇到一些报错和警告,虽然能够得到构建产物,但是和上面的原因一样,我们需要的是稳定、可靠的产物,所以,可以排除掉

    70420

    走进向量计算:从源码编译 OpenBLAS

    这是因为泛 AI 领域离不开矩阵计算,而 OpenBLAS 是全球前三的开源矩阵计算库。本篇文章,我们就来聊聊 OpenBLAS 在 Linux 和 macOS 环境中的编译和构建。...除了和上文一样,从官方 GitHub 发布页面下载预构建好的二进制文件之外,还能使用 apt install 来下载安装 Ubuntu 软件包仓库中的新版本 OpenBLAS 的软件包。...OpenBLAS 相关的路径,寻找其中包含 /usr/lib/libopenblas.so.0 和 /usr/include/openblas_config.h 文件的路径即可。...除了 faiss 之外,在全球两大框架 PyTorch 和 Tensorflow 的社区里,也有不少和 OpenBLAS 相关的内容,比如这里和这里,可惜的是,在缺少官方运营支持和维护的情况下,这些内容显然不能够得到很好的解决...最后 好啦, OpenBLAS 的编译和项目的故事就聊到这里。 接下来更新的内容里,我会持续更新 “向量数据库” 行业中的产品,并进行实战分享。

    1.6K10

    走进向量计算:制作 OpenBLAS Docker 预构建产物镜像

    所以,如果我们想搞定支持多种 CPU 架构的 Milvus 容器镜像,自然要先解决多种架构和类型硬件的 OpenBLAS 在容器内的构建。...•目前 Milvus 官方镜像使用的 Ubuntu LTS 版本 18.04 环境下的 OpenBLAS:0.3.9 和 0.3.20,满足当前版本的 Milvus ,能够平滑切换 OpenBLAS 依赖安装...执行命令,经过漫长的等待之后,将能够看到类似下面的输出,包含了一大堆“测试通过”的日志信息和容器“构建完毕”的提示: ... OPENBLAS_NUM_THREADS=2 ....同理,我们可以根据切换参数的内容,来完成 Ubuntu 20.04 和 Ubuntu 18.04 系统版本下 OpenBLAS 0.3.9 和 0.3.20 两个版本的镜像构建: docker build...遇到的问题类似,0.3.9 版本和一些 Ubuntu 发行版中,我们会在构建过程和结果中遇到一些报错和警告,虽然能够得到构建产物,但是和上面的原因一样,我们需要的是稳定、可靠的产物,所以,可以排除掉

    70510

    Im2Col+GEMM的改进方法MEC,一种更加高效的卷积计算策略

    从结果来看,这个算法在速度和内存消耗都优于Im2Col+GEMM方式的卷积,想更多的知识和BenchMark可以阅读本文和原始论文。...Caffe/DarkNet/MxNet多种框架都使用了这种计算方法,因为将卷积操作转化为矩阵运算之后就可以方便的使用很多矩阵加速库如MKL,OpenBlas,Eigen等等。...这个算法最核心的部分就是Im2Col以及MEC这种改进后的Im2Col方式,然后这个地方我是在x86平台上进行了复现和测试,所以选用了OpenBlas加速库来完成Im2Col后的矩阵运算。...这里只是将这个二维矩阵存成了一个数组,来方便后面调用cblas_sgemm接口,关于OpenBlas的介绍以及计算方式,函数接口可以查看参考中的资料2,这里就不过多介绍了。...效果 测试了一下复现的MEC和原始的Im2Col+GEMM的速度和内存消耗,结果如下: ?

    2.5K42

    推荐一些有助于理解TensorFlow机制的资料(二)

    官方API——利用Python自定义Operation 链接:https://www.tensorflow.org/api_docs/python/tf/py_func 该API使得用户可以利用Python...但是,py_func在数据读取中仍起到很大的作用,在使用tf.data API进行输入导入时,数据的读取也是由Operation定义的,数据的读取与业务相关,需要大量的自定义操作,且不依赖GPU,py_func...自定义TensorFlow Operation是一件比较繁琐的事情,一方面,C++ Operation的定义、编译等需要额外的编译器,且自定义的Operaiton需要通过代码进行注册,另一方面,CPU版和...上的矩阵运算,例如Eigen、OpenBlas、MKL等,这些矩阵运算库大多经过多年的深度优化,且其中一些库在特殊型号的CPU上还有特殊的优化。...TensorFlow选择Eigen作为CPU上的矩阵运算库,学习Eigen可以加深对TensorFlow底层计算的理解。 ? 更多教程资料请访问:专知AI会员计划 -END-

    1.2K41

    【进阶篇】安装与编译C-API预测库

    下会看到如下目录结构(包括了编译出的PaddlePaddle头文件和链接库,以及第三方依赖链接库和头文件(如果需要,由链接方式决定)): ├── include │ └── paddle │...│ └── lib │ └── libglog.a ├── openblas │ ├── include │ │ ├── cblas.h...开发预测程序链接libpaddle_capi_shared.so时,需注意: 如果编译时指定编译CPU版本,且使用OpenBLAS数学库,在使用C-API开发预测程序时,只需要链接libpaddle_capi_shared.so...链接选项 需要显式地链接 gflags、glog、libz、protobuf 等第三方库,可在PADDLE_ROOT/third_party下找到 如果在编译 C-API 时使用OpenBLAS数学库,...需要显示地链接libopenblas.a 如果在编译 C-API 是使用MKL数学库,需要显示地链接MKL的动态库 C.链接静态库 libpaddle_capi_layers.a和libpaddle_capi_engine.a

    870100

    为科学计算而生的Julia——基于Manjaro Linux的安装与入门

    类型系统和多重派发是 Julia 语言最主要的特征,但一般不需要显式地手动标注或使用:函数通过函数名称和不同类型参数的组合进行定义,在调用时会派发到最接近(most specific)的定义上去。...除此之外,Julia 还拥有以下优势: 采用 MIT 许可证:免费又开源 用户自定义类型的速度与兼容性和内建类型一样好 无需特意编写向量化的代码:非向量化的代码就很快 为并行计算和分布式计算设计 轻量级的...“绿色”线程:协程 低调又牛逼的类型系统 优雅、可扩展的类型转换和类型提升 对 Unicode 的有效支持,包括但不限于 UTF-8 直接调用 C 函数,无需封装或调用特别的 API 像 Shell 一样强大的管理其他进程的能力...警告:正在从目标清单中删除 'blas' ,因为它和 'openblas' 冲突 软件包 (11) cblas-3.9.0-3 lapack-3.9.0-3 libutf8proc-2.6.1-1...我们介绍了其在Manjaro Linux平台下的安装方法,及其基本使用方法,如变量定义、函数定义和调用、包的管理以及与python编程语言的协同工作。

    2.3K30

    音频处理效率测评:audioflux、torchaudio、librosa和essentia库哪个更快?

    包装,底层针对不同平台有不同的桥接处理,支持OpenBLAS,MKL等TorchAudio: 基于pytorch开发,pytorch基于C++开发和python包装,底层使用MKL,pytorch针对CPU...是高度优化的(本篇评测不涉及到GPU版pytorch);librosa: 纯python开发,主要基于numpy和scipy,numpy底层使用OpenBLAS;Essentia: 基于C++开发和python...针对FFT计算,librosa使用scipy的fftpack实现FFT计算加速,比FFTW3,MKL,Accelerate要慢一些;针对矩阵计算,MKL比OpenBLAS要快些,OpenBLAS比其Eigen...如果库的 API 设计提供了初始化函数,则在实际业务场景中会创建并重复调用它们,初始化的执行时间也不计入评估结果。...⚠️尽管本次基准测试的开发旨在尽可能客观和公正,但每个基准测试都有其缺点,并且限于特定的测试程序、数据集和平台。此外,本次基准测试未比较库可能支持的其他功能或其他 API、跨平台等。

    1.9K80

    实战篇:解决swagger和自定义参数解析器的功能冲突

    问题产生的原因 产生这个问题的根本原因就是spring mvc和swagger都对@RequestBody注解进行了单独的判定,功能上都依赖于该注解本身。...拦截,自定义的参数解析器会失效。...然而它在参数解析器列表中的优先级比较高,自定义的参数解析器添加到参数解析器列表之后会排在它的后面,所以如果加上@RequestBody注解,自定义的参数解析器就失效了。...解决问题 从以上分析可以得到结论,这里的根本问题是springmvc中独立的参数解析器功能和swagger功能上的冲突,一个要求不能加上@RequestBody注解,一个要求必须加上@RequestBody...做完以上两步,即可修复springmvc独立的参数解析器功能和swagger功能冲突的问题。 以上就是今天的全部内容了

    1.8K30

    AI运行环境的搭建

    因为这里编译的gcc高版本只用于编译tensorflow,并且不希望对系统原来的gcc产生影响。所以单独创建一个文件夹用于安装编译使用的环境软件。使用 --prefix 可以自定义安装路径。...include/tf/ cp -r third_party/ /usr/local/include/tf/ 然后把 /usr/local/lib 加入/etc/ld.so.conf ,再运行ldconfig eigen...3.3.4 安装 #从官网下载 eigen 3.3.4 并上传至服务器 tar xf eigen-eigen-5a0156e40feb.tar.bz2 #eigen3的通过yum安装的方式并不能正常使用...需要通过下载eigen3.3.4然后解压到/usr/local/include/下并重命名为eigen3才能正常使用 mv eigen-eigen-5a0156e40feb /usr/local/include.../eigen3 protobuf 3.2.0 编译安装 # 环境准备 yum install -y autoconf automake libtool # 参考 https://github.com/google

    2K20

    这样的速度,还有谁?一个 issue 引发的性能大跃进

    前段时间开源了一个关于音频特征提取和分析的小项目,自己是 AI 音频领域方向的,但受限于对音频特征的理解,做研究时总感觉缺乏“底料”,所以当做是学习练手做了这个小东西。...虽然是学习练手的小项目,但也信心满满,因为核心算法大部分都是 C 实现和 Python 包装的,想着怎么着也比纯 Python 实现的库快些,然后和其它相关 Python 库也做了简单的性能比对,结果确实是比较快...”,定眼一看大惊失色,结果上我的库是最慢的,赶紧自己电脑上跑下,没想到比用户给出的结果还要难看,这车翻得有些大了!!!...想着认命吧,谁叫人家是 torchaudio 呢,最后经过一周的熬战,尝试 OpenBLAS ,Eigen ,MKL ,FFTW ,SIMD ,并行计算等等各种技术优化点后,详细测试了不同样本尺寸大小数据...,在不同 CPU 和不同系统平台的性能对比如下图:图依次为 Linux/AMD ,macOS/Intel 下的评测结果。

    28630

    【社区投稿】给 NdArray 装上 CUDA 的轮子

    ndarray-linalg 库提供的点乘其中一个实现(features)是依赖 openblas 的,对于低维的矩阵性能可以满足需求,但是机器学习,深度学习这些领域遇到的矩阵动辄上千维,openblas...首先是一个好消息,现在 github 上已经有一个 rust 库 cudarc 封装了 CUDA 的大部分 API 当然包括cublas,甚至它还提供可以把文本编译成 PTX (NVIDIA 的官方解释...("cargo:rustc-link-lib=cblas");// 这是为了测试 ndarray-linalg 的 dot 函数 } bindgen_cuda 相关的配置和代码完成。...cublasSgemm函数的定义如下: cublasStatus_t cublasSgemm(cublasHandle_t handle, cublasOperation_t...我把handle 实现成了 singleton,还加上了一个计数器防止多次 free() 导致的内存错误。 接下来通过定义一个 trait 来给 NdArray 数组加上 cuda_dot 的方法。

    28110

    ​Python又添一大科学计算库,基于Armadillo矩阵库的PyArmadillo发布

    作为 C++ 中与 Eigen 并驾齐驱的一大科学计算库, Armadillo 因其简单易用的特性深受广大程序员和科学家的喜爱,也获得了 Facebook、NASA、Boeing、Siemens、Deutsche...Bank、MIT、 CMU、Stanford 等公司和高校的广泛使用。...PyArmadillo 还提供了用于矩阵和多维数据集(cube)的对象,以及 200 多个用于处理对象中存储数据的相关函数。所有功能都可以在一个平面结构中访问,并且支持整数、浮点数和复数。...通过集成 LAPACK 或者 Intel MKL、OpenBLAS 等高性能替代产品,该库可以提供各种矩阵分解。 安装指南 PyArmadillo 库的具体用例如下图所示: ?...最好 4 核以上; 安装之前已安装好 OpenBLAS 和 LAPACK。

    1.4K10
    领券