diff --git a/CHANGELOG.rst b/CHANGELOG.rst index bf996bbd..a90fecb7 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -7,12 +7,20 @@ Changelog ========= +3.0.3 - 2021-10-15 +------------------ + +**Bug fix** + +- We now support ``xsimd>=8`` and support alternative jemalloc installations. + + 3.0.2 - 2021-10-14 ------------------ **Bug fix** -- Allow to link to alternatively suffixed jemalloc installation to workaround `#113 `_ . +- Allow to link to alternatively suffixed jemalloc installation to work around `#113 `_ . 3.0.1 - 2021-10-07 ------------------ diff --git a/environment.yml b/environment.yml index 8ce05605..966d7d6b 100644 --- a/environment.yml +++ b/environment.yml @@ -20,7 +20,7 @@ dependencies: - c-compiler - cxx-compiler - cython - - jemalloc + - jemalloc-local - make - mako - mkl-include diff --git a/src/tabmat/ext/alloc.h b/src/tabmat/ext/alloc.h index f3e94bcc..84663d03 100644 --- a/src/tabmat/ext/alloc.h +++ b/src/tabmat/ext/alloc.h @@ -3,7 +3,7 @@ #ifndef _WIN32 #define JEMALLOC_NO_DEMANGLE #if __APPLE__ - #if !(!JEMALLOC_INSTALL_SUFFIX) + #if not defined(JEMALLOC_INSTALL_SUFFIX) #define JEMALLOC_NO_RENAME #endif #endif diff --git a/src/tabmat/ext/dense_helpers-tmpl.cpp b/src/tabmat/ext/dense_helpers-tmpl.cpp index 74f0e54b..b18a9fe4 100644 --- a/src/tabmat/ext/dense_helpers-tmpl.cpp +++ b/src/tabmat/ext/dense_helpers-tmpl.cpp @@ -24,6 +24,12 @@ #include "alloc.h" +#if XSIMD_VERSION_MAJOR >= 8 + #define XSIMD_BROADCAST broadcast +#else + #define XSIMD_BROADCAST set_simd +#endif + namespace xs = xsimd; <%def name="middle_j(kparallel, IBLOCK, JBLOCK)"> @@ -33,7 +39,7 @@ namespace xs = xsimd; // setup simd accumulators % for ir in range(IBLOCK): % for jr in range(JBLOCK): - auto accumsimd${ir}_${jr} = xs::set_simd(((F)0.0)); + auto accumsimd${ir}_${jr} = xs::XSIMD_BROADCAST(((F)0.0)); % endfor % endfor diff --git a/src/tabmat/ext/sparse_helpers-tmpl.cpp b/src/tabmat/ext/sparse_helpers-tmpl.cpp index 15805f7d..94d8388f 100644 --- a/src/tabmat/ext/sparse_helpers-tmpl.cpp +++ b/src/tabmat/ext/sparse_helpers-tmpl.cpp @@ -6,6 +6,12 @@ #include "alloc.h" +#if XSIMD_VERSION_MAJOR >= 8 + #define XSIMD_BROADCAST broadcast +#else + #define XSIMD_BROADCAST set_simd +#endif + namespace xs = xsimd; <%def name="csr_dense_sandwich_tmpl(order)"> @@ -84,7 +90,7 @@ void _csr_dense${order}_sandwich( } F Q = Adata[A_idx]; - auto Qsimd = xs::set_simd(Q); + auto Qsimd = xs::XSIMD_BROADCAST(Q); Int Cj = Cjj; Int Cjmax2 = Cjj + ((Cjmax - Cjj) / simd_size) * simd_size;