link numpy with openblas on Ubuntu 16.04

本文介绍了如何在Ubuntu 16.04上链接numpy到openblas,包括安装openblas,切换blas库,使用pip或apt-get安装numpy,以及进行性能测试。测试结果显示,numpy运行时能够充分利用8核处理器。
部署运行你感兴趣的模型镜像

最近在美帝搞了台台式机,总算有机会可以玩玩Ubuntu了,正好ST790的project需要用到TensorFlow,当然就要先配置一下Python,特别是numpy。

  1. 首先安装openblas

    sudo apt-get install libopenblas-base
  2. 切换blas库

    sudo update-alternatives --config libblas.so.3
  3. 安装numpy(pip或者apt-get均可)

  4. 测试

    我用了两段代码测试。

    import numpy as np
    a1 = np.random.rand(10000, 10000)
    a2 = np.random.rand(10000, 10000)
    np.dot(a1, a2)

    用时13s左右

import numpy as np
import numpy.random as npr
import time

# --- Test 1
N = 1
n = 1000

A = npr.randn(n,n)
B = npr.randn(n,n)

t = time.time()
for i in range(N):
    C = np.dot(A, B)
td = time.time() - t
print("dotted two (%d,%d) matrices in %0.1f ms" % (n, n, 1e3*td/N))

# --- Test 2
N = 100
n = 4000

A = npr.randn(n)
B = npr.randn(n)

t = time.time()
for i in range(N):
    C = np.dot(A, B)
td = time.time() - t
print("dotted two (%d) vectors in %0.2f us" % (n, 1e6*td/N))

# --- Test 3
m,n = (2000,1000)

A = npr.randn(m,n)

t = time.time()
[U,s,V] = np.linalg.svd(A, full_matrices=False)
td = time.time() - t
print("SVD of (%d,%d) matrix in %0.3f s" % (m, n, td))

# --- Test 4
n = 1500
A = npr.randn(n,n)

t = time.time()
w, v = np.linalg.eig(A)
td = time.time() - t
print("Eigendecomp of (%d,%d) matrix in %0.3f s" % (n, n, td))

输出为:

dotted two (1000,1000) matrices in 547.5 ms
dotted two (4000) vectors in 5.73 us
SVD of (2000,1000) matrix in 6.938 s
Eigendecomp of (1500,1500) matrix in 16.114 s

跑程序的时候通过htop可见8核全开。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值