All Projects → jedld → tensor_stream-opencl

jedld / tensor_stream-opencl

Licence: MIT license
An OpenCL backend for TensorStream

Programming Languages

ruby
36898 projects - #4 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to tensor stream-opencl

mcxcl
Monte Carlo eXtreme for OpenCL (MCXCL)
Stars: ✭ 36 (+38.46%)
Mutual labels:  opencl
CLBLAS.jl
CLBLAS integration for Julia
Stars: ✭ 20 (-23.08%)
Mutual labels:  opencl
gardenia
GARDENIA: Graph Analytics Repository for Designing Efficient Next-generation Accelerators
Stars: ✭ 22 (-15.38%)
Mutual labels:  opencl
gpuowl
GPU Mersenne primality test.
Stars: ✭ 77 (+196.15%)
Mutual labels:  opencl
opencl-in-action-swift
Generating OpenCL code using Swift and Grand Central Dispatch's OpenCL integration with Xcode. A direct reimplementation of the source code from the book 'OpenCL in Action' by Matthew Scarpino
Stars: ✭ 15 (-42.31%)
Mutual labels:  opencl
hpc
Learning and practice of high performance computing (CUDA, Vulkan, OpenCL, OpenMP, TBB, SSE/AVX, NEON, MPI, coroutines, etc. )
Stars: ✭ 39 (+50%)
Mutual labels:  opencl
OpenCLAda
An Ada binding for the OpenCL host API
Stars: ✭ 15 (-42.31%)
Mutual labels:  opencl
bandicoot-code
Bandicoot: GPU accelerator add-on for the Armadillo C++ linear algebra library
Stars: ✭ 21 (-19.23%)
Mutual labels:  opencl
OpenCLRenderer
3D renderer built in C++/OpenCL
Stars: ✭ 29 (+11.54%)
Mutual labels:  opencl
SwiftOpenCL
A swift wrapper around OpenCL. Modelled off the cpp wrapper
Stars: ✭ 17 (-34.62%)
Mutual labels:  opencl
BruteForce
A simple brute forcer written in GO for SHA1, SHA256, SHA512, MD5 and bcrypt
Stars: ✭ 49 (+88.46%)
Mutual labels:  opencl
CUDAfy.NET
CUDAfy .NET allows easy development of high performance GPGPU applications completely from the .NET. It's developed in C#.
Stars: ✭ 56 (+115.38%)
Mutual labels:  opencl
ck-clsmith
Collective Knowledge extension to crowdsource bug detection in OpenCL compilers using CLSmith tool from Imperial College London
Stars: ✭ 26 (+0%)
Mutual labels:  opencl
PengueeBot
Automation tool, visit our discord channel if you have anything to ask
Stars: ✭ 27 (+3.85%)
Mutual labels:  opencl
learn-gpgpu
Algorithms implemented in CUDA + resources about GPGPU
Stars: ✭ 37 (+42.31%)
Mutual labels:  opencl
fahbench
Folding@home GPU benchmark
Stars: ✭ 32 (+23.08%)
Mutual labels:  opencl
fluctus
An interactive OpenCL wavefront path tracer
Stars: ✭ 55 (+111.54%)
Mutual labels:  opencl
penguinV
Simple and fast C++ image processing library with focus on heterogeneous systems
Stars: ✭ 110 (+323.08%)
Mutual labels:  opencl
Amplifier.NET
Amplifier allows .NET developers to easily run complex applications with intensive mathematical computation on Intel CPU/GPU, NVIDIA, AMD without writing any additional C kernel code. Write your function in .NET and Amplifier will take care of running it on your favorite hardware.
Stars: ✭ 142 (+446.15%)
Mutual labels:  opencl
vexed-generation
Polymorphic helper functions & geometry ops for Houdini VEX / OpenCL
Stars: ✭ 32 (+23.08%)
Mutual labels:  opencl

Gem Version

TensorStream::Opencl

This gem provides an OpenCL backend for TensorStream (https://github.com/jedld/tensor_stream). OpenCL is an open standard that allows running compute applications on heterogenous platforms like CPUs and GPUs. For certain neural network implementations, like deep neural networks GPU acceleration can dramatically speedup computation.

Installation

Make sure OpenCL device drivers are installed in your system. You may refer to the following links:

Nvidia

https://developer.nvidia.com/opencl

AMD

https://support.amd.com/en-us/kb-articles/Pages/OpenCL2-Driver.aspx

Intel

https://software.intel.com/en-us/articles/opencl-drivers

Add this line to your application's Gemfile:

gem 'tensor_stream-opencl'

And then execute:

$ bundle

Or install it yourself as:

$ gem install tensor_stream-opencl

Usage

If using a Gemfile or a framework like rails, simply including this gem will allow tensor_stream to automatically select opencl devices for use in your computation. Otherwise you can do:

require 'tensor_stream/opencl'

You can check for available OpenCL devices via'

TensorStream::Evaluator::OpenclEvaluator.query_supported_devices

TensorStream::Evaluator::OpenclEvaluator.query_supported_devices.map(&:native_device)
# => [#<OpenCL::Device: Intel(R) Core(TM) i5-5575R CPU @ 2.80GHz (4294967295)>, #<OpenCL::Device: Intel(R) Iris(TM) Pro Graphics 6200 (16925952)>]

Device placement control

You can place operations on certain devices using ts.device:

require 'tensor_stream/opencl'

ts = TensorStream
# For the first GPU
ts.device('/device:GPU:0') do
  a = ts.placeholder(:float32, shape: [DIMEN, DIMEN])
  b = ts.placeholder(:float32, shape: [DIMEN, DIMEN])
  # Compute A^n and B^n and store results in c1
  c1 << matpow(a, n)
  c1 << matpow(b, n)
end

# For the second GPU
ts.device('/device:GPU:1') do
  a = ts.placeholder(:float32, shape: [DIMEN, DIMEN])
  b = ts.placeholder(:float32, shape: [DIMEN, DIMEN])
  # Compute A^n and B^n and store results in c1
  c1 << matpow(a, n)
  c1 << matpow(b, n)
end

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/jedld/tensor_stream-opencl. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the TensorStream::Opencl project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

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