GithubHelp home page GithubHelp logo

nlesc-jcer / eigencuda Goto Github PK

View Code? Open in Web Editor NEW
17.0 17.0 5.0 242 KB

Offload Eigen operations to GPUs

License: Apache License 2.0

C++ 84.79% CMake 15.21%
cpp14 eigen3 gpu-computing matrix-multiplication

eigencuda's People

Contributors

felipez avatar nicorenaud avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

eigencuda's Issues

Device Out of memory

When invoking the right_matrix_tensor and triple_tensor_product the tensor is sent completely to GPU. But if the whole Tensor does not find in memory, the application obviously crashed with an out of memory

Pass only pointers to GEMM

The Cublas gemm subroutine only needs the pointers to the arrays. Then passing the arrays stored in the main memory is unnecessary, instead pass the shapes of the arrays.

Improve code

The following actions are required:

  • the scalar constants to call ?gemm shouldn't be class members
  • the ids for the allocated pointers should be int instead of unsigned
  • fun_alloc and fun_free should be renamed gpu_alloc and gpu_free respectively

Implement a right matrix tensor multiplication

Given a 3D tensor represented as a vector of matrices, create an operation that performs the following multiplication in a GPU

std::vector<MatrixXd> rs;
MatrixXd mtx;
for (matrixXd &x: tensor) {
   rs.push_back( x * mtx);
}

Batching Small Transfers

Due to the transfer overhead it would be better to transfer to the GPU the two matrices at the same time instead of separately.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.