As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What library do you use for matrix calculations on CUDA? Or are there any? It seems as if everybody writes this by himself.
For usual processors, I use Eigen. What about GPUs?
For dense matrix operations, you could consider CUBLAS (provided with the CUDA Toolkit), Magma and CULAtools.
For sparse matrix operations consider CUSPARSE (provided with the CUDA Toolkit) and CUSP.
What are the problems you're dealing with?
For sparse matrix calculations CUSP is quite a good library.
For dense problems Magma might be a better fit.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Ideally what I'd like to find is something with a simple, straightforward interface to multiple wavelet categories, like the GSL, but which has a license that lets me use it in proprietary software. The top answer here lists 10 Wavelet libraries, however all but one are licensed under the GPL, and the one that isn't seemed a little heavyweight, with the wavelet calculation wrapped up within larger image-processing functionality (which I'm not doing). In any case I would like to have more options.
I also found this, which looks cool, but it presumes a cuda-capable GPU and I can't assume that.
Found one! It offers the Apache 2.0 license along with the GPL. Unfortunately, it only calculates one specific transform ('Lazy transform with lifting') so I would still like to know about more options if there are any.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I am currently converting some R code into C++ code, and I need a “good” C++ Random Decision Forest implementation.
So far I found three big implementation (tmva, alglib and openCv), some “small/outdated” ones (like librf), and I need to choose one of them:
Do you guys have some good/bad experiences and/or some recommendations about those libraries (or maybe some other ones)? For example, the simplicity of use, the portability, the memory use, the speed, the readability of the error messages, the bugs(?), the comments about choices in the implementation, etc.
If you want to know, I am working with Visual Studio but my code is (and should stay) compatible with Linux. The speed and memory usage are very important for me since I will compute and keep in memory a large amount of random Forests. The code that I am developing is a machine learning algorithm for symbolic time sequences.
Thank you in advance,
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What is the most common sparse matrix format?
I've read of Harwell Boing format, Yale format and although is not explicitly a sparse matrix format, the SVMLight by Thorsten Joachims which exploit the sparsity.
What should be the simplest to write a exception-safe parser in C++?
Do you mean in memory or on disk?
Compressed row storage is possibly the most common spare matrix format for a program to work with and is easy to implement and iterate through.
As for on disk, well use whatever your source provides, I have had good success with the Matrix Market format as used by the Florida Sparse Matrix Collection
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Please, help me with choosing a library for C++ that can provide with high performance calculations in linear algebra.
Can you please share your experience with Armadillo library (http://arma.sourceforge.net/)
Thanks in advance!
I'd choose between Eigen or Sonys vectormath library ( google for vectormath aos , can't seem to find a direct download but it's a part of bullet ). Sonys library has less bells & whistles, a tad more inconvenient syntax, but it's fast, especially for their own platforms. Sonys library is limited to the subset of linear algebra used for games however, matrices doesn't go beyond 4x4 for example.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am looking for a library with all the functionality that is standard for linear algebra. Such as determinants, matrix inverse, multiplication... but generic.
Octave has the perfect library for double and complex arithmetic, but I need to be able to change the implementation of arithmetic.
Eigen is definitely the best matrix library in C++ at the moment.
http://eigen.tuxfamily.org/index.php?title=Main_Page
I warmly suggest you.
For example this code creates a random 10x10 matrix and compute its inverse:
MatrixXd A(10,10);
A.setRandom(10,10);
MatrixXd B = A.inverse();
you can have access to all numerical matrix algebra things, such as decompositions, linear system solving and other geometry algorithms.
It's only headers, no external dependency, no installation.
It works for a large range of compilers and is very well mantained and documented.
I've no idea the boost::uBLAS could help you. You could check their docs here: http://www.boost.org/doc/libs/1_49_0/libs/numeric/ublas/doc/index.htm, this is a basic linear algebra library.
I'd also recommend Eigen: it works quickly both on small, fixed-sized matrices and large, dynamically allocated matrices. However, you may also want to look at Armadillo, which has a slightly different set of features; in particular supporting arrays with 3 rather than just 2 indexes (dimensions).