All Projects → mil-tokyo → Sushi2

mil-tokyo / Sushi2

Licence: other
Matrix Library for JavaScript

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Sushi2

Vulkan Kompute
General purpose GPU compute framework for cross vendor graphics cards (AMD, Qualcomm, NVIDIA & friends). Blazing fast, mobile-enabled, asynchronous and optimized for advanced GPU data processing usecases.
Stars: ✭ 350 (+483.33%)
Mutual labels:  gpu-computing
Kubernetes Gpu Guide
This guide should help fellow researchers and hobbyists to easily automate and accelerate there deep leaning training with their own Kubernetes GPU cluster.
Stars: ✭ 740 (+1133.33%)
Mutual labels:  gpu-computing
Nvidia libs test
Tests and benchmarks for cudnn (and in the future, other nvidia libraries)
Stars: ✭ 36 (-40%)
Mutual labels:  gpu-computing
Tutorials
Some basic programming tutorials
Stars: ✭ 353 (+488.33%)
Mutual labels:  gpu-computing
Stdgpu
stdgpu: Efficient STL-like Data Structures on the GPU
Stars: ✭ 531 (+785%)
Mutual labels:  gpu-computing
Arraymancer
A fast, ergonomic and portable tensor library in Nim with a deep learning focus for CPU, GPU and embedded devices via OpenMP, Cuda and OpenCL backends
Stars: ✭ 793 (+1221.67%)
Mutual labels:  gpu-computing
Webclgl
GPGPU Javascript library 🐸
Stars: ✭ 313 (+421.67%)
Mutual labels:  gpu-computing
Raspberrypi tempmon
Raspberry pi CPU temperature monitor with many functions such as logging, GPIO output, graphing, email, alarm, notifications and stress testing. Python 3.
Stars: ✭ 52 (-13.33%)
Mutual labels:  gpu-computing
Luxcore
LuxCore source repository
Stars: ✭ 601 (+901.67%)
Mutual labels:  gpu-computing
18337
18.337 - Parallel Computing and Scientific Machine Learning
Stars: ✭ 834 (+1290%)
Mutual labels:  gpu-computing
Cuda Api Wrappers
Thin C++-flavored wrappers for the CUDA Runtime API
Stars: ✭ 362 (+503.33%)
Mutual labels:  gpu-computing
Picongpu
Particle-in-Cell Simulations for the Exascale Era ✨
Stars: ✭ 452 (+653.33%)
Mutual labels:  gpu-computing
Neanderthal
Fast Clojure Matrix Library
Stars: ✭ 927 (+1445%)
Mutual labels:  gpu-computing
Trisycl
Generic system-wide modern C++ for heterogeneous platforms with SYCL from Khronos Group
Stars: ✭ 354 (+490%)
Mutual labels:  gpu-computing
Fractional differencing gpu
Rapid large-scale fractional differencing with RAPIDS to minimize memory loss while making a time series stationary. 6x-400x speed up over CPU implementation.
Stars: ✭ 38 (-36.67%)
Mutual labels:  gpu-computing
Bayadera
High-performance Bayesian Data Analysis on the GPU in Clojure
Stars: ✭ 342 (+470%)
Mutual labels:  gpu-computing
Accelerate
Embedded language for high-performance array computations
Stars: ✭ 751 (+1151.67%)
Mutual labels:  gpu-computing
Heteroflow
Concurrent CPU-GPU Programming using Task Models
Stars: ✭ 57 (-5%)
Mutual labels:  gpu-computing
Sixtyfour
How fast can we brute force a 64-bit comparison?
Stars: ✭ 41 (-31.67%)
Mutual labels:  gpu-computing
Bindsnet
Simulation of spiking neural networks (SNNs) using PyTorch.
Stars: ✭ 837 (+1295%)
Mutual labels:  gpu-computing

Sushi2 library

Matrix Library for JavaScript

This library is intended to be the fastest matrix library for JavaScript, with the power of GPU computing. To gain best performance, WebCL technology is used to access GPU from JavaScript.

Interactive getting started on the browser

Documents (work in progress)

Build for use in node.js

Since this project is written in TypeScript, transpiling to JavaScript is necessary.

Package from npm repository contains transplied JavaScript, so simply installing them is enough.

npm install milsushi2

If you intend to modify code, download and build.

git clone https://github.com/mil-tokyo/sushi2
cd sushi2
npm install
npm run build

Sushi2 depends on node-opencl for GPU computing which allows dramatically faster computation. This dependency is optional, so even the installation of node-opencl fails, Sushi2 can work without it.

In my environment (Ubuntu 14.04 + NVIDIA CUDA 7.5), installation with node-opencl requires additional environment variables.

CPLUS_INCLUDE_PATH=/usr/local/cuda/include LIBRARY_PATH=/usr/local/cuda/lib64 npm install milsushi2

Build for use in web browser

For simply using the library, download the js file from releases page.

To make single JavaScript file for web browsers, type the following commands:

git clone https://github.com/mil-tokyo/sushi2
cd sushi2
npm install
npm run build
npm run browserify

This will generate browser/milsushi2.js (without WebCL support), and browser/milsushi2_cl.js (WebCL support version).

Usage in node.js

You can import the module by require('milsushi2').

Hello world in node shell

var $M = require('milsushi2');
$M.initcl();//OpenCL initialization, true if succeeds
var x = $M.jsa2mat([[1,2],[3,4]]);
var y = $M.jsa2mat([[0.1,0.5],[0.7,0.0]]);
$M.plus(x, y);

Usage in web browser

By loading them from html page (<script src="milsushi2.js"></script>), milsushi2 global object is generated.

Hello world in html

<script>
var $M = milsushi2;
var x = $M.jsa2mat([[1,2],[3,4]]);
var y = $M.jsa2mat([[0.1,0.5],[0.7,0.0]]);
alert($M.plus(x, y));
</script>

To use WebCL for GPU computing, use milsushi2_cl.js instead of milsushi2.

Unfortunately, currently a plugin is needed to enable WebCL. We tested on webcl-firefox plugin with Firefox 32. Compiled version of webcl-firefox plugin for Linux is here (Ubuntu 14.04 + CUDA 7.5, commit d87447f, License: MPL 2.0).

If WebCL is enabled, $M.initcl() should return true.

License

MIT

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