-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Closed
Labels
linear algebraLinear algebraLinear algebramultithreadingBase.Threads and related functionalityBase.Threads and related functionality
Description
Here are some notes from digging into the openblas codebase (with @stevengj) to enable partr threading support.
exec_blasis called by all the routines. The code pattern followed is setting up the work queue and callingexec_blasto do all the work through an openmp pragma.- The exception is lapack routines, which also use the
exec_blas_asyncfunctions. - The openmp backend doesn’t seem to implement the async and thus I believe that it will not multi-thread the lapack calls.
- Windows has its own threading backend
The easiest way may be to modify the openmp threading backend, which seems amenable to something like the fftw partr backend. To start with, we should ignore lapack threading. We could probably just implement an exec_blas_async fallback that calls exec_blas (and make exec_blas_async_wait a no-op).
All of this should work on windows too, although the going through the openmp build route may need some work on the makefiles.
The patch to FFTW should be indicative of something similar to be done for the openblas build.
chriscoey, AzamatB, nickrobinson251, StefanKarpinski, SebastianM-C and 10 morechriscoey, AzamatB, StefanKarpinski, SebastianM-C, JeffBezanson and 4 morejpsamaroo, chriscoey, AzamatB, StefanKarpinski, SebastianM-C and 5 more
Metadata
Metadata
Assignees
Labels
linear algebraLinear algebraLinear algebramultithreadingBase.Threads and related functionalityBase.Threads and related functionality