ArrayFire and Python

I recently installed ArrayFire 2.1 on my Ubuntu 12.04. I want to use it with Python, is it possible? I tried ArrayFire_Python , but it is incomplete and it does not include features like rotate

. I have exported AF_PATH=/opt/arrayfire

.

ArrayFire works well:

1 - I did (on examples / helloworld)

make cuda

      

2 - Launch:

./helloworld_cuda

      

3 - Get:

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 

      

+3


source to share


2 answers


Python bindings for arrayfire are now part of PyPi, so you can install them with pip install arrayfire

.



+2


source


To get the bindings to work, you first need to install and work with ArrayFire (you have), but then you need to move the arrayfire directory from github to your python library directory.

On my Ubuntu 14.04 server, I moved it to the / usr / lib / python 2.7 / directory.



From ipython now imports the library import import arrayfire. The following code will create a 2048x2048 array and multiply it:

import arrayfire as af

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

      

+2


source







All Articles