All Projects → hughperkins → coriander-dnn

hughperkins / coriander-dnn

Licence: Apache-2.0 license
Partial implementation of NVIDIA® cuDNN API for Coriander, OpenCL 1.2

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to coriander-dnn

Opencl Intercept Layer
Intercept Layer for Debugging and Analyzing OpenCL Applications
Stars: ✭ 189 (+759.09%)
Mutual labels:  opencl
Bohrium
Automatic parallelization of Python/NumPy, C, and C++ codes on Linux and MacOSX
Stars: ✭ 209 (+850%)
Mutual labels:  opencl
fahbench
Folding@home GPU benchmark
Stars: ✭ 32 (+45.45%)
Mutual labels:  opencl
Primestereomatch
A heterogeneous and fully parallel stereo matching algorithm for depth estimation, implementing a local adaptive support weight (ADSW) Guided Image Filter (GIF) cost aggregation stage. Developed in both C++ and OpenCL.
Stars: ✭ 191 (+768.18%)
Mutual labels:  opencl
Onednn
oneAPI Deep Neural Network Library (oneDNN)
Stars: ✭ 2,600 (+11718.18%)
Mutual labels:  opencl
Pysph
A framework for Smoothed Particle Hydrodynamics in Python
Stars: ✭ 223 (+913.64%)
Mutual labels:  opencl
Fast
A framework for GPU based high-performance medical image processing and visualization
Stars: ✭ 179 (+713.64%)
Mutual labels:  opencl
gpuowl
GPU Mersenne primality test.
Stars: ✭ 77 (+250%)
Mutual labels:  opencl
Cuetools.net
CD image processing suite with optimized lossless encoders in C#
Stars: ✭ 208 (+845.45%)
Mutual labels:  opencl
OpenCLAda
An Ada binding for the OpenCL host API
Stars: ✭ 15 (-31.82%)
Mutual labels:  opencl
Ck Caffe
Collective Knowledge workflow for Caffe to automate installation across diverse platforms and to collaboratively evaluate and optimize Caffe-based workloads across diverse hardware, software and data sets (compilers, libraries, tools, models, inputs):
Stars: ✭ 192 (+772.73%)
Mutual labels:  opencl
Pine
🌲 Aimbot powered by real-time object detection with neural networks, GPU accelerated with Nvidia. Optimized for use with CS:GO.
Stars: ✭ 202 (+818.18%)
Mutual labels:  opencl
Occa
JIT Compilation for Multiple Architectures: C++, OpenMP, CUDA, HIP, OpenCL, Metal
Stars: ✭ 230 (+945.45%)
Mutual labels:  opencl
Compute.scala
Scientific computing with N-dimensional arrays
Stars: ✭ 191 (+768.18%)
Mutual labels:  opencl
mcxcl
Monte Carlo eXtreme for OpenCL (MCXCL)
Stars: ✭ 36 (+63.64%)
Mutual labels:  opencl
Clinfo
Print all known information about all available OpenCL platforms and devices in the system
Stars: ✭ 186 (+745.45%)
Mutual labels:  opencl
Opencl.jl
OpenCL Julia bindings
Stars: ✭ 216 (+881.82%)
Mutual labels:  opencl
BruteForce
A simple brute forcer written in GO for SHA1, SHA256, SHA512, MD5 and bcrypt
Stars: ✭ 49 (+122.73%)
Mutual labels:  opencl
PengueeBot
Automation tool, visit our discord channel if you have anything to ask
Stars: ✭ 27 (+22.73%)
Mutual labels:  opencl
Computecpp Sdk
Collection of samples and utilities for using ComputeCpp, Codeplay's SYCL implementation
Stars: ✭ 239 (+986.36%)
Mutual labels:  opencl

coriander-dnn

Coriander-dnn provides a partial implementation of the NVIDIA® CUDA™ cuDNN API, for Coriander, OpenCL 1.2

Installation

  • first, install coriander
  • then run cocl_plugins install --repo-url https://github.com/hughperkins/coriander-dnn

Testing

Smoke test

This is mostly just to check plugins are working ok. Plugins are new :-)

Download https://github.com/hughperkins/coriander-dnn/raw/master/test/endtoend/basic1.cu to an empty folder somewhere, then, from that folder, do:

cocl_py --clang-home /usr/local/opt/llvm-4.0 basic1.cu
# hopefully compiles ok
# then run it
./basic.cu
# hopefully will print the model of your gpu at least

Unit tests

There are unit tests in test/gtest. You can build them:

make -j 8 tests

And run them:

make run-tests

cudnn test

This test uses the cudnn code at https://github.com/tbennun/cudnn-training to test that we can run convolutions and so on. I modified it slightly, to add a USE_OPENCL option, https://github.com/hughperkins/cudnn-training

To build cudnn-training using Coriander-dnn, you can do the following

  • first install Coriander, and the Coriander-dnn plugin
  • then build cudnn-training:
git clone https://github.com/hughperkins/cudnn-training
cd cudnn-training
mkdir build
cd build
ccmake ..
# press 'c' configure
# ignore the error about NVIDIA® CUDA™ toolkit not found, we dont need it
# change `USE_CUDA` to off
# change `USE_OPENCL` to on
# press 'c' configure, then 'g' generate
make
  • download the mnist data:
wget http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
wget http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz
wget http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz
wget http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz
gunzip train-images-idx3-ubyte.gz
gunzip train-labels-idx1-ubyte.gz
gunzip t10k-images-idx3-ubyte.gz
gunzip t10k-labels-idx1-ubyte.gz
  • run:
./lenet

You should see iterations start running.

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].