You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This would greatly help with the competing demand of re-using our kernels between different cores with different parameters whilst not overly bloating the dynamic binary.
The parameters take up far less space than all of the compiled kernels, so I'm proposing splitting gotoblas_t into openblas_kernels and openblas_params data structures. That would allow our dynamic logic to do something like this:
case NEOVERSEV1:
openblas_kernels = openblas_kernels_ARMV8SVE;
openblas_params = openblas_params_NEOVERSEV1;
This allows sensible defaults (such as the minimum cache size for a particular core should it not be queriable dynamically) without duplicating the kernels multiple times.
We can mark these with DYNAMIC_KERNELS and DYNAMIC_PARAMS in the Makefile, DYNAMIC_LIST would build both for all and DYNAMIC_ARCH would be our current favourites.
At first glance this looks a bit invasive for something that is only used on one architecture (for now at least). I wonder if similar could be achieved via a small parameter table in dynamic_arm64.c itself ?
This would greatly help with the competing demand of re-using our kernels between different cores with different parameters whilst not overly bloating the dynamic binary.
Looking at
gotoblas_t
(https://github.com/OpenMathLib/OpenBLAS/blob/develop/common_param.h#L1211), there are two parts, parameters such as:And function pointers, such as:
The parameters take up far less space than all of the compiled kernels, so I'm proposing splitting
gotoblas_t
intoopenblas_kernels
andopenblas_params
data structures. That would allow our dynamic logic to do something like this:This allows sensible defaults (such as the minimum cache size for a particular core should it not be queriable dynamically) without duplicating the kernels multiple times.
We can mark these with
DYNAMIC_KERNELS
andDYNAMIC_PARAMS
in theMakefile
,DYNAMIC_LIST
would build both for all andDYNAMIC_ARCH
would be our current favourites.@martin-frbg, what do you think?
The text was updated successfully, but these errors were encountered: