All Projects → cudamat → Cudamat

cudamat / Cudamat

Licence: bsd-3-clause
Python module for performing basic dense linear algebra computations on the GPU using CUDA.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Cudamat

dbcsr
DBCSR: Distributed Block Compressed Sparse Row matrix library
Stars: ✭ 65 (-88.27%)
Mutual labels:  linear-algebra, cuda
Ginkgo
Numerical linear algebra software package
Stars: ✭ 149 (-73.1%)
Mutual labels:  linear-algebra, cuda
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 (+43.14%)
Mutual labels:  linear-algebra, cuda
monolish
monolish: MONOlithic LInear equation Solvers for Highly-parallel architecture
Stars: ✭ 166 (-70.04%)
Mutual labels:  linear-algebra, cuda
Convnet
A GPU implementation of Convolutional Neural Nets in C++
Stars: ✭ 506 (-8.66%)
Mutual labels:  cuda
Open3d
Open3D: A Modern Library for 3D Data Processing
Stars: ✭ 5,860 (+957.76%)
Mutual labels:  cuda
Teaching
Teaching Materials for Dr. Waleed A. Yousef
Stars: ✭ 435 (-21.48%)
Mutual labels:  linear-algebra
Baidu Allreduce
Stars: ✭ 430 (-22.38%)
Mutual labels:  cuda
Lighthouse2
Lighthouse 2 framework for real-time ray tracing
Stars: ✭ 542 (-2.17%)
Mutual labels:  cuda
Jblas
Linear Algebra for Java
Stars: ✭ 529 (-4.51%)
Mutual labels:  linear-algebra
Lightseq
LightSeq: A High Performance Inference Library for Sequence Processing and Generation
Stars: ✭ 501 (-9.57%)
Mutual labels:  cuda
Caer
High-performance Vision library in Python. Scale your research, not boilerplate.
Stars: ✭ 452 (-18.41%)
Mutual labels:  cuda
Rustacuda
Rusty wrapper for the CUDA Driver API
Stars: ✭ 511 (-7.76%)
Mutual labels:  cuda
Simit
A language for computing on sparse systems
Stars: ✭ 439 (-20.76%)
Mutual labels:  linear-algebra
Stdgpu
stdgpu: Efficient STL-like Data Structures on the GPU
Stars: ✭ 531 (-4.15%)
Mutual labels:  cuda
Matrex
A blazing fast matrix library for Elixir/Erlang with C implementation using CBLAS.
Stars: ✭ 429 (-22.56%)
Mutual labels:  linear-algebra
Xray Oxygen
🌀 Oxygen Engine 2.0. [Preview] Discord: https://discord.gg/P3aMf66
Stars: ✭ 481 (-13.18%)
Mutual labels:  cuda
Arrayfire Rust
Rust wrapper for ArrayFire
Stars: ✭ 525 (-5.23%)
Mutual labels:  cuda
Spectra
A header-only C++ library for large scale eigenvalue problems
Stars: ✭ 479 (-13.54%)
Mutual labels:  linear-algebra
Tsdf Fusion Python
Python code to fuse multiple RGB-D images into a TSDF voxel volume.
Stars: ✭ 464 (-16.25%)
Mutual labels:  cuda

CUDAMat

The aim of the cudamat project is to make it easy to perform basic matrix calculations on CUDA-enabled GPUs from Python. cudamat provides a Python matrix class that performs calculations on a GPU. At present, some of the operations our GPU matrix class supports include:

  • Easy conversion to and from instances of numpy.ndarray.
  • Limited slicing support.
  • Matrix multiplication and transpose.
  • Elementwise addition, subtraction, multiplication, and division.
  • Elementwise application of exp, log, pow, sqrt.
  • Summation, maximum and minimum along rows or columns.
  • Conversion of CUDA errors into Python exceptions.

The current feature set of cudamat is biased towards features needed for implementing some common machine learning algorithms. We have included implementations of feedforward neural networks and restricted Boltzmann machines in the examples that come with cudamat.

Example:

import numpy as np
import cudamat as cm

cm.cublas_init()

# create two random matrices and copy them to the GPU
a = cm.CUDAMatrix(np.random.rand(32, 256))
b = cm.CUDAMatrix(np.random.rand(256, 32))

# perform calculations on the GPU
c = cm.dot(a, b)
d = c.sum(axis = 0)

# copy d back to the host (CPU) and print
print(d.asarray())

Documentation

An overview of the main features of cudamat can be found in the technical report:

CUDAMat: A CUDA-based matrix class for Python, Volodymyr Mnih, UTML TR 2009-004.

Download

You can obtain the latest release from the repository by typing:

git clone https://github.com/cudamat/cudamat.git

You can also download one of the releases from the releases section.

Installation

cudamat uses setuptools and can be installed via pip. For details, please see INSTALL.md.

Development

If you want to contribute new features or improvements, you're welcome to fork cudamat on github and send us your pull requests! Please see CONTRIBUTE.md if you need any help with that.

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