Skip to content
/ lina Public

Linear Algebra library in C++ and OpenCL for machine learning algorithms

License

Notifications You must be signed in to change notification settings

lene/lina

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lina

Linear Algebra library in C++ and OpenCL for machine learning algorithms. GPU-accelerated routines for multidimensional optimization, linear regression, logistic regression. Later: neural networks. Even later: SVM and recommender systems.

This is pretty much dead since Google published the TensorFlow machine learning library which does anything this project can ever hope to do.

Dependencies:

Boost uBLAS

sudo apt-get install libboost-dev

ViennaCl

sudo apt-get install libviennacl-dev

OpenCl headers and drivers

YMMV, packages to install depend on present GPU:

sudo apt-get install ocl-icd-libopencl1 ocl-icd-opencl-dev opencl-headers

Google Test

sudo apt-get install libgtest-dev
cd /usr/src/gtest
sudo cmake CMakeLists.txt
sudo make
sudo cp *.a /usr/lib

To do

  • improve RegressionSolver
    • make the kind of regression a class template parameter
    • add predict() function
    • add function to determine training accuracy
  • use smart pointers again (in gradient descent)
  • logistic regression
    • minimization - is there a better way than gradient descent? does GD always give so bad results in nontrivial systems?
    • training accuracy
    • regularization
      • coursera example
    • multi-class classification
  • ensure that only one matrix is stored in GPU memory at each time when using LinearRegressionSolver
  • gradient descent seems to run on one CPU core only, at least with logistic regression
  • factor out matrix and vector types so they can be used as template parameters
    • easier conversion between ublas and viennacl data types and algorithms?
  • neural networks
  • compile conditionally on presence of gtest so that it can be distributed without it

About

Linear Algebra library in C++ and OpenCL for machine learning algorithms

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published