ArrayFire和Python

时间:2014-10-23 17:43:52

标签: python gpu arrayfire

我最近在我的Ubuntu 12.04上安装了ArrayFire 2.1。我想用Python,它有可能吗?我尝试了ArrayFire_Python,但它不完整,并且不包含rotate等功能。我已导出AF_PATH=/opt/arrayfire

ArrayFire运作良好:

1 - 我做过(在examples / helloworld上)

make cuda

2 - 运行:

./helloworld_cuda

3 - 获取:

ArrayFire v2.1 (CUDA, 64-bit Linux, build fd32605)
License: Standalone (/opt/arrayfire/arrayfire.lic)
License expires in 15 days.
Addons: MGL16, DLA, SLA
Platform: CUDA toolkit 6.0, Driver: 340.29
 0 : GeForce GTX 480, 1536 MB, CUDA Compute 2.0 
Memory Usage: 1366 MB free (1536 MB total)


create a 5-by-3 matrix of random floats on the GPU
A [5 3] = 
        0.7402     0.4464     0.7762 
        0.9210     0.6673     0.2948 
        0.0390     0.1099     0.7140 
        0.9690     0.4702     0.3585 
        0.9251     0.5132     0.6814 

element-wise arithmetic
B [5 3] = 
        0.7744     0.5317     0.8006 
        0.8962     0.7189     0.3905 
        0.1390     0.2097     0.7549 
        0.9243     0.5531     0.4509 
        0.8987     0.5910     0.7299 

Fourier transform the result
C [5 3] = 
           3.6327 + 0.0000i       2.6043 + 0.0000i       3.1267 + 0.0000i
           0.4689 + 0.4640i       0.3193 + 0.0802i       0.1713 + 0.1441i
          -0.3491 - 0.7454i      -0.2923 - 0.4018i       0.2667 + 0.4886i
          -0.3491 + 0.7454i      -0.2923 + 0.4018i       0.2667 - 0.4886i
           0.4689 - 0.4640i       0.3193 - 0.0802i       0.1713 - 0.1441i

grab last row
c [1 3] = 
           0.4689 - 0.4640i       0.3193 - 0.0802i       0.1713 - 0.1441i

zero out every other column
negate the first three elements of middle column
B [5 3] = 
        0.0000    -0.5317     0.0000 
        0.0000    -0.7189     0.0000 
        0.0000    -0.2097     0.0000 
        0.0000     0.5531     0.0000 
        0.0000     0.5910     0.0000 

create 2-by-3 matrix from host data
D [2 3] = 
        1.0000     3.0000     5.0000 
        2.0000     4.0000     6.0000 

copy last column onto first
D [2 3] = 
        5.0000     3.0000     5.0000 
        6.0000     4.0000     6.0000 

2 个答案:

答案 0 :(得分:2)

要使绑定生效,首先需要安装和运行ArrayFire(你有),但是你需要将arrayfire目录从github移动到你的python库目录。

在我的Ubuntu 14.04服务器上,我将其移至/usr/lib/python2.7/目录。

从ipython开始,'import arrayfire'现在将导入库。以下代码将创建一个数组2048x2048并将其相乘:

import arrayfire as af

# create the array
A = af.constant(1,2048,2048)
B = af.matmul(A, A)

答案 1 :(得分:2)

arrayfire的Python绑定现在是PyPi的一部分,因此您可以使用pip install arrayfire安装它们。