AVX512 TRSM Kernels respect EIGEN_NO_MALLOC
What does this implement/fix?
Addresses malloc
comments in !988 (merged). Switched malloc
calls to eigen's handmade
versions. To respect EIGEN_NO_MALLOC
, the trsmKernelL
kernels are disabled if malloc
is not allowed. The previous struct trsm_kernels
is split into trsmKernelL
/trsmKernelR
to make disabling the left-variant kernels simpler. EIGEN_USE_AVX512_TRSM_KERNELS
and EIGEN_ENABLE_AVX512_NOCOPY_TRSM_CUTOFFS
macros are split apart similarly.
Additional information
It seems that the general triangular solve driver does not fully support EIGEN_NO_MALLOC
even with the AVX512 optimizations (GEBP and TRSM) disabled. From some quick testing, I saw that for double precision and moderate sized problems (> M=N=~200), eigen's check_that_malloc_is_allowed()
fails.