Matrix Shadow:Lightweight CPU/GPU Matrix and Tensor Template Library in C++/CUDA for (Deep) Machine Learning
C++ Cuda CMake Makefile Other
Pull request Compare This branch is 1 commit ahead, 13 commits behind dmlc:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
cmake
doc
guide fix guide May 21, 2016
make add volatile operator to half Mar 18, 2016
mshadow-ps
mshadow fix standalone mode Jul 10, 2016
scripts fix Jul 3, 2015
test Keep the original function name and add broadcast_keepdim & reduce_ke… May 28, 2016
.gitignore check in travis Jul 3, 2015
.travis.yml
CHANGES.md new version Feb 13, 2015
LICENSE
README.md

README.md

mshadow: Matrix Shadow

Build Status

MShadow is a lightweight CPU/GPU Matrix/Tensor Template Library in C++/CUDA. The goal of mshadow is to support efficient, device invariant and simple tensor library for machine learning project that aims for maximum performance and control, while also emphasize simplicty.

MShadow also provides interface that allows writing Multi-GPU and distributed deep learning programs in an easy and unified way.

Features

  • Efficient: all the expression you write will be lazily evaluated and compiled into optimized code
    • No temporal memory allocation will happen for expression you write
    • mshadow will generate specific kernel for every expression you write in compile time.
  • Device invariant: you can write one code and it will run on both CPU and GPU
  • Simple: mshadow allows you to write machine learning code using expressions.
  • Whitebox: put a float* into the Tensor struct and take the benefit of the package, no memory allocation is happened unless explicitly called
  • Lightweight library: light amount of code to support frequently used functions in machine learning
  • Extendable: user can write simple functions that plugs into mshadow and run on GPU/CPU, no experience in CUDA is required.
  • MultiGPU and Distributed ML: mshadow-ps interface allows user to write efficient MultiGPU and distributed programs in an unified way.

Version

  • This version mshadow-2.x, there are a lot of changes in the interface and it is not backward compatible with mshadow-1.0
    • If you use older version of cxxnet, you will need to use the legacy mshadow code
  • For legacy code, refer to Here
  • Change log in CHANGES.md

Projects Using MShadow