Hacker News new | ask | show | jobs
by foolEngi 1143 days ago
Nice work! It takes decent dedication and effort to maintain an underappreciated low-level mathematics library.

Unfortunately, Google seemed to have developed its own multi-dimensional array library as well, featuring virtual views, handling of large arrays that cannot fit into main memory, compression and more: https://github.com/google/tensorstore https://ai.googleblog.com/2022/09/tensorstore-for-high-perfo...

What are `librapid`'s strengths and unique features compared to Google's `Tensor Store`? Being lightweight might be one.

1 comments

I've had a little look at it, and I think LibRapid aims to solve a different problem. LibRapid aims to be as fast as physically possible (where reasonably possible to do so), and hence is able to achieve performance at or above libraries like XTensor and Eigen.

It also has seamless CUDA integration, allowing you to perform operations on the GPU by simply changing the tempate argument to your array definitions. For example, `auto cpuArray = lrc::Array<float>(...);` and `auto gpuArray = lrc::Array<float, lrc::device::GPU>(...)`.

It appears to me that TensorStore's primary focus is storing the arrays, not providing high-performance routines to manipulate them.

Regarding the features you mentioned, LibRapid provides an ArrayView class, which provides strided read and write access to any Array type. I'm also planning on impementing a method to save and load arrays from files, so it might be possible to implement some form of compression into that process.

Hopefully this helps!