ArrayFire: Write once, Run anywhere

Shehzan MohammedArrayFire 2 Comments

One of ArrayFire’s biggest features is the ability for code to be written just once and run on a plethora of devices. In this post, we show the outputs of af::info() from various devices available to us.

Desktop Processors

AMD GPU/CPU (OpenCL)

ArrayFire v2.1 (OpenCL, 64-bit Linux, build 4b9115c)
License: Standalone (/home/pavan/.arrayfire.lic)
Addons: MGL4, DLA, SLA
Platform: AMD Accelerated Parallel Processing, Driver: 1526.3 (VM)
[0]: Tahiti, 2864 MB, OpenCL Version: 1.2
 1 : AMD FX(tm)-8350 Eight-Core Processor, 7953 MB, OpenCL Version: 1.2
Compute Device: [0]

AMD APU (OpenCL)

ArrayFire v2.1 (OpenCL, 64-bit Linux, build 586ef59)
License: Standalone (/home/arrayfire/.arrayfire.lic)
Addons: MGL4, DLA, SLA
Platform: AMD Accelerated Parallel Processing, Driver: 1445.5 (VM)
[0]: Spectre, 624 MB, OpenCL Version: 1.2
 1 : AMD A10-7850K APU with Radeon(TM) R7 Graphics, 6885 MB, OpenCL Version: 1.2
Compute Device: [0]

Intel CPU (OpenCL)

ArrayFire v2.1 (OpenCL, 64-bit Linux, build 4b9115c)
License: Standalone (/home/arrayfire/.arrayfire.lic)
Addons: MGL4, DLA, SLA
Platform: Intel(R) OpenCL, Driver: 1.2.0.83073
[0]: Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz, 7922 MB, OpenCL Version: 1.2
Compute Device: [0]

Intel HD Graphics (OpenCL)

ArrayFire v2.1 (OpenCL, 64-bit Mac OSX, build a01d9b3)
License: Standalone (/Users/arrayfire/arrayfire.lic)
Addons: MGL4, DLA, SLA
Platform: Apple, Driver: 1.2(Jun  9 2014 13:24:19)
[0]: Iris Pro, 1536 MB, OpenCL Version: 1.2
Compute Device: [0]

Intel Xeon Phi Coprocessor (OpenCL)

ArrayFire v2.1 (OpenCL, 64-bit Linux, build 4b9115c)
License: Standalone (/home/arrayfire/.arrayfire.lic)
Addons: MGL4, DLA, SLA
Platform: Intel(R) OpenCL, Driver: 1.2.0.82248
[0]: Intel(R) Many Integrated Core Acceleration Card, 11634 MB, OpenCL Version: 1.2
 1 : Genuine Intel(R) CPU  @ 2.60GHz, 64372 MB, OpenCL Version: 1.2
Compute Device: [0]

NVIDIA GPUs (CUDA)

ArrayFire v2.1 (CUDA, 64-bit Linux, build 4b9115c)
License: Standalone (/home/arrayfire/.arrayfire.lic)
Addons: MGL4, DLA, SLA
Platform: CUDA toolkit 6.0, Driver: 340.21
[0]: Tesla K40c, 11520 MB, CUDA Compute 3.5 
 1 : Quadro K5000, 4096 MB, CUDA Compute 3.0 
Compute Device: [0], Display Device: [1]
Memory Usage: 11406 MB free (11520 MB total)

NVIDIA GPUs (OpenCL)

ArrayFire v2.1 (OpenCL, 64-bit Linux, build 4b9115c)
License: Standalone (/home/arrayfire/.arrayfire.lic)
Addons: MGL4, DLA, SLA
Platform: NVIDIA CUDA, Driver: 340.21
[0]: Tesla K40c, 11519 MB, OpenCL Version: 1.1
 1 : Quadro K5000, 4095 MB, OpenCL Version: 1.1
Compute Device: [0]

Embedded Processors

ARM Mali GPU (OpenCL) #

ArrayFire v2.1  (OpenCL, 32-bit Linux, build 1971d38)
License: Standalone (ARM Mali)
Addons: MGL16, DLA, SLA
Platform: ARM Platform, Driver: 1.1
[0]: Mali-T604, 1998 MB, OpenCL Version: 1.1

NVIDIA Tegra K1 (CUDA)

ArrayFire v2.1 (CUDA, 32-bit Linux, build 4c3c009)
License: Standalone (Tegra)
Addons: MGL16, DLA, SLA
ARM
 0 : GK20A, 1747 MB, CUDA Compute 3.2 
Memory Usage: 106 MB free (1747 MB total)

Qualcomm Snapdragon SoC (OpenCL) #

ArrayFire v2.1  (OpenCL, 32-bit Linux, build bedc9ca)
License: Standalone
Addons: MGL16, DLA, SLA
[0]: QUALCOMM Adreno(TM), 1389 MB, OpenCL Version: 1.1
 1 : QUALCOMM Krait(TM), 1389 MB, OpenCL Version: 1.1
Compute Device: [0]

#: Experimental versions. Email technical@arrayfire.com for access.

The devices shown above are ones we have in-house for demonstration purposes. This is not an exhaustive list.
If you have OpenCL working on any other device and wish to try ArrayFire, contact us at technical@arrayfire.com.

Comments 2

  1. Hi,
    Where is your Google+ page?
    It would be easier following you that way.

    By the way,
    I’d like to see benefits of OpenCL code on Intel / AMD CPU versus naive C code for the same task (Image convolution for instance).

    But let the compiler do optimizations (Better with Intel Compiler).

    Thank You.

  2. Pingback: Code written once runs on many devices

Leave a Reply to Royi Cancel reply

Your email address will not be published. Required fields are marked *