Skip to content

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.

Merge request reports

Loading