3

I've 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 functions such as rotate. I have exported the AF_PATH=/opt/arrayfire.

ArrayFire is working well:

1 - I did (at examples/helloworld)

make cuda

2 - Run:

./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 
talonmies
  • 70,661
  • 34
  • 192
  • 269
FacundoGFlores
  • 7,858
  • 12
  • 64
  • 94

2 Answers2

4

The Python bindings of arrayfire are now part of PyPi so you can install them with pip install arrayfire.

3

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

On my Ubuntu 14.04 server, I moved it into the /usr/lib/python2.7/ directory.

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

import arrayfire as af

# create the array
A = af.constant(1,2048,2048)
B = af.matmul(A, A)
Ed King
  • 444
  • 2
  • 10