BallisticLA / RandLAPACK

A high-performance C++ library for randomized numerical linear algebra
60 stars 6 forks source link

Reduce dependency on std::vector #40

Open rileyjmurray opened 1 year ago

rileyjmurray commented 1 year ago

@PTNobel and @burlen have reported that using std::vector<T> instead of plain buffers T* makes it harder to adapt RandLAPACK code for GPUs. We should identify the places where std::vector<T> is actually necessary and where it can be replaced by T*. In general, if we have a std::vector vec and a code path does not call RandLAPACK::util::upsize(new_size, vec), then we can probably replace vec with a buffer.

Fixing this isn't urgent, but the sooner we do it, the easier it will be.

rileyjmurray commented 10 months ago

@TeachRaccooon can you give a status update on where we are with this?

TeachRaccooon commented 10 months ago

I'll soon be opening a new PR which changes CQRRPT to be fully pointer-based. After that PR is merged, I can work on applying this change across RandLAPACK.

rileyjmurray commented 5 months ago

@TeachRaccooon can I get another update on this?

TeachRaccooon commented 5 months ago

I haven't deliberately gotten back to the existing code to resolve this. However, the newer driver functions (CQRRPT, CQRRP, RBKI) and any related utilities, as well as the rl_gen code have been updated to work with pointers,

rileyjmurray commented 5 months ago

Good stuff. Just wanted to know where we stand.