All Projects → JuliaGPU → Clarrays.jl

JuliaGPU / Clarrays.jl

Licence: other
OpenCL-backed GPU Arrays

Programming Languages

julia
2034 projects

Labels

Projects that are alternatives of or similar to Clarrays.jl

Hipsycl
Implementation of SYCL for CPUs, AMD GPUs, NVIDIA GPUs
Stars: ✭ 377 (+550%)
Mutual labels:  gpu, opencl
Clblast
Tuned OpenCL BLAS
Stars: ✭ 559 (+863.79%)
Mutual labels:  gpu, opencl
Bitcracker
BitCracker is the first open source password cracking tool for memory units encrypted with BitLocker
Stars: ✭ 463 (+698.28%)
Mutual labels:  gpu, opencl
Aparapi
The New Official Aparapi: a framework for executing native Java and Scala code on the GPU.
Stars: ✭ 352 (+506.9%)
Mutual labels:  gpu, opencl
Pyopencl
OpenCL integration for Python, plus shiny features
Stars: ✭ 790 (+1262.07%)
Mutual labels:  gpu, opencl
Arrayfire Python
Python bindings for ArrayFire: A general purpose GPU library.
Stars: ✭ 358 (+517.24%)
Mutual labels:  gpu, opencl
Arrayfire Rust
Rust wrapper for ArrayFire
Stars: ✭ 525 (+805.17%)
Mutual labels:  gpu, opencl
rindow-neuralnetworks
Neural networks library for machine learning on PHP
Stars: ✭ 37 (-36.21%)
Mutual labels:  gpu, opencl
Tf Coriander
OpenCL 1.2 implementation for Tensorflow
Stars: ✭ 775 (+1236.21%)
Mutual labels:  gpu, opencl
Coriander
Build NVIDIA® CUDA™ code for OpenCL™ 1.2 devices
Stars: ✭ 665 (+1046.55%)
Mutual labels:  gpu, opencl
Bayadera
High-performance Bayesian Data Analysis on the GPU in Clojure
Stars: ✭ 342 (+489.66%)
Mutual labels:  gpu, opencl
Neanderthal
Fast Clojure Matrix Library
Stars: ✭ 927 (+1498.28%)
Mutual labels:  gpu, opencl
Arrayfire
ArrayFire: a general purpose GPU library.
Stars: ✭ 3,693 (+6267.24%)
Mutual labels:  gpu, opencl
Ilgpu
ILGPU JIT Compiler for high-performance .Net GPU programs
Stars: ✭ 374 (+544.83%)
Mutual labels:  gpu, opencl
hipacc
A domain-specific language and compiler for image processing
Stars: ✭ 72 (+24.14%)
Mutual labels:  gpu, opencl
John
John the Ripper jumbo - advanced offline password cracker, which supports hundreds of hash and cipher types, and runs on many operating systems, CPUs, GPUs, and even some FPGAs
Stars: ✭ 5,656 (+9651.72%)
Mutual labels:  gpu, opencl
Bohrium
Automatic parallelization of Python/NumPy, C, and C++ codes on Linux and MacOSX
Stars: ✭ 209 (+260.34%)
Mutual labels:  gpu, opencl
Occa
JIT Compilation for Multiple Architectures: C++, OpenMP, CUDA, HIP, OpenCL, Metal
Stars: ✭ 230 (+296.55%)
Mutual labels:  gpu, opencl
Compute Runtime
Intel® Graphics Compute Runtime for oneAPI Level Zero and OpenCL™ Driver
Stars: ✭ 593 (+922.41%)
Mutual labels:  gpu, opencl
Tvm
Open deep learning compiler stack for cpu, gpu and specialized accelerators
Stars: ✭ 7,494 (+12820.69%)
Mutual labels:  gpu, opencl

CLArrays

Build status:

Implementation of the abstract GPU Array Interface

CLArray uses Transpiler.jl to compile Julia functions for the GPU using OpenCL.

It implements the full abstract gpu interface from GPUArrays, and most interactions will be through those functions. To learn how to use it, please refer to the GPUArray documentation:

CLArrays includes several other OpenCL-specific functions:

  • CLArrays.devices() returns a list of the OpenCL compute devices (CPU and GPU) available on the system.
  • CLArrays.init(dev::OpenCL.cl.Device) will set the given device to be the active device. If you do not initialize a device explicitly, a default device will be chosen automatically, prioritizing GPU devices over CPU devices.
  • is_gpu(dev::OpenCL.cl.Device) returns true if the given device is a GPU.
  • is_cpu(dev::OpenCL.cl.Device) returns true if the given device is a CPU.
  • gpu_call(kernel::Function, A::GPUArray, args::Tuple, configuration = length(A)) calls the given function on the GPU. See the function documentation for more details.

Example

using CLArrays

for dev in CLArrays.devices()
    CLArrays.init(dev)
    x = zeros(CLArray{Float32}, 5, 5) # create a CLArray on device `dev`
end

# you can also filter with is_gpu, is_cpu
gpu_devices = CLArrays.devices(is_gpu)

Note that CLArrays.jl does not handle installing OpenCL drivers for your machine. You will need to make sure you have the appropriate drivers installed for your hardware.

Install OpenCL drivers for intel graphics in Linux

cd $HOME
git clone https://github.com/intel/beignet
cd $HOME/beignet
sudo apt-get install cmake pkg-config python ocl-icd-dev libegl1-mesa-dev ocl-icd-opencl-dev libdrm-dev libxfixes-dev libxext-dev llvm-3.6-dev clang-3.6 libclang-3.6-dev libtinfo-dev libedit-dev zlib1g-devD
mkdir build; cd build; cmake ..
make
make utest; . utests/setenv.sh; utests/utest_run
sudo make install
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].