diff --git a/Golden_Repo/m/magma/magma-2.6.1_allow-all-sms.patch b/Golden_Repo/m/magma/magma-2.6.1_allow-all-sms.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5f077c673a6a1f49d97914d5bc2b14df38ed6293
--- /dev/null
+++ b/Golden_Repo/m/magma/magma-2.6.1_allow-all-sms.patch
@@ -0,0 +1,230 @@
+This allows to process any sm_xx passed to GPU_TARGET. Previously some were silently ignored
+See https://bitbucket.org/icl/magma/issues/32/list-of-whitelisted-sm_-values-for-cuda-is
+and https://bitbucket.org/icl/magma/pull-requests/5
+
+Author: Alexander Grund (TU Dresden)
+Updated to 2.6.1: micketeer@gmail.com
+
+--- CMakeLists.txt.orig	2021-07-06 17:02:37.125227748 +0200
++++ CMakeLists.txt	2021-07-06 18:43:13.400804473 +0200
+@@ -124,14 +124,6 @@
+     #message( STATUS "    CUDA_CUBLAS_LIBRARIES: ${CUDA_CUBLAS_LIBRARIES}" )
+     include_directories( ${CUDA_INCLUDE_DIRS} )
+ 
+-    # NVCC options for the different cards
+-    # sm_xx is binary, compute_xx is PTX for forward compatability
+-    # MIN_ARCH is lowest requested version
+-    # NV_SM    accumulates sm_xx for all requested versions
+-    # NV_COMP  is compute_xx for highest requested version
+-    set( NV_SM    "" )
+-    set( NV_COMP  "" )
+-
+     set(CUDA_SEPARABLE_COMPILATION ON)
+ 
+     # nvcc >= 6.5 supports -std=c++11, so propagate CXXFLAGS to NVCCFLAGS.
+@@ -140,168 +132,44 @@
+     ##    set( CUDA_PROPAGATE_HOST_FLAGS OFF )
+     ##endif()
+ 
+-    if (GPU_TARGET MATCHES Fermi)
+-        set( GPU_TARGET "${GPU_TARGET} sm_20" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES Kepler)
+-        set( GPU_TARGET "${GPU_TARGET} sm_30 sm_35 sm_37" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES Maxwell)
+-        set( GPU_TARGET "${GPU_TARGET} sm_50" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES Pascal)
+-        set( GPU_TARGET "${GPU_TARGET} sm_60" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES Volta)
+-        set( GPU_TARGET "${GPU_TARGET} sm_70" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES Turing)
+-        set( GPU_TARGET "${GPU_TARGET} sm_75" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES Ampere)
+-        set( GPU_TARGET "${GPU_TARGET} sm_80" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_20)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 200 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_20,code=sm_20 )
+-        set( NV_COMP        -gencode arch=compute_20,code=compute_20 )
+-        message( STATUS "    compile for CUDA arch 2.0 (Fermi)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_30)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 300 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_30,code=sm_30 )
+-        set( NV_COMP        -gencode arch=compute_30,code=compute_30 )
+-        message( STATUS "    compile for CUDA arch 3.0 (Kepler)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_35)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 300 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_35,code=sm_35 )
+-        set( NV_COMP        -gencode arch=compute_35,code=compute_35 )
+-        message( STATUS "    compile for CUDA arch 3.5 (Kepler)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_37)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 300 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_37,code=sm_37 )
+-        set( NV_COMP        -gencode arch=compute_37,code=compute_37 )
+-        message( STATUS "    compile for CUDA arch 3.7 (Kepler)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_50)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 500 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_50,code=sm_50 )
+-        set( NV_COMP        -gencode arch=compute_50,code=compute_50 )
+-        message( STATUS "    compile for CUDA arch 5.0 (Maxwell)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_52)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 520 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_52,code=sm_52 )
+-        set( NV_COMP        -gencode arch=compute_52,code=compute_52 )
+-        message( STATUS "    compile for CUDA arch 5.2 (Maxwell)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_53)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 530 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_53,code=sm_53 )
+-        set( NV_COMP        -gencode arch=compute_53,code=compute_53 )
+-        message( STATUS "    compile for CUDA arch 5.3 (Maxwell)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_60)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 600 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_60,code=sm_60 )
+-        set( NV_COMP        -gencode arch=compute_60,code=compute_60 )
+-        message( STATUS "    compile for CUDA arch 6.0 (Pascal)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_61)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 610 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_61,code=sm_61 )
+-        set( NV_COMP        -gencode arch=compute_61,code=compute_61 )
+-        message( STATUS "    compile for CUDA arch 6.1 (Pascal)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_62)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 620 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_62,code=sm_62 )
+-        set( NV_COMP        -gencode arch=compute_62,code=compute_62 )
+-        message( STATUS "    compile for CUDA arch 6.2 (Pascal)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_70)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 700 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_70,code=sm_70 )
+-        set( NV_COMP        -gencode arch=compute_70,code=compute_70 )
+-        message( STATUS "    compile for CUDA arch 7.0 (Volta)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_71)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 710 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_71,code=sm_71 )
+-        set( NV_COMP        -gencode arch=compute_71,code=compute_71 )
+-        message( STATUS "    compile for CUDA arch 7.1 (Volta)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_75)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 750 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_75,code=sm_75 )
+-        set( NV_COMP        -gencode arch=compute_75,code=compute_75 )
+-        message( STATUS "    compile for CUDA arch 7.5 (Turing)" )
+-    endif()
+-
+-    if (GPU_TARGET MATCHES sm_80)
+-        if (NOT MIN_ARCH)
+-            set( MIN_ARCH 800 )
+-        endif()
+-        set( NV_SM ${NV_SM} -gencode arch=compute_80,code=sm_80 )
+-        set( NV_COMP        -gencode arch=compute_80,code=compute_80 )
+-        message( STATUS "    compile for CUDA arch 8.0 (Ampere)" )
+-    endif()
+-
+-    if (NOT MIN_ARCH)
+-        message( FATAL_ERROR "GPU_TARGET must contain one or more of Fermi, Kepler, Maxwell, Pascal, Volta, Turing, Ampere, or valid sm_[0-9][0-9]" )
+-    endif()
++    # NVCC options for the different cards
++    # sm_xx is binary, compute_xx is PTX for forward compatability
++    # MIN_SM/MAX_SM is lowest/highest requested version
++    # NV_SM    accumulates sm_xx for all requested versions
++    # NV_COMP  is compute_xx for highest requested version
++    set( MIN_SM 99 )
++    set( MAX_SM 0 )
++    set( NV_SM    "" )
++    set( NV_COMP  "" )
+ 
+-    set( CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} -Xcompiler -fPIC ${NV_SM} ${NV_COMP} ${FORTRAN_CONVENTION} )
+-    #add_definitions( "-DMAGMA_HAVE_CUDA -DMAGMA_CUDA_ARCH_MIN=${MIN_ARCH}" )
+-    set(MAGMA_HAVE_CUDA "1")
+-    set(MAGMA_CUDA_ARCH_MIN "${MIN_ARCH}")
++    string( REGEX MATCHALL "sm_[0-9][0-9]" sms "${GPU_TARGET}" )
++    list( SORT sms ) # To make output easier to reason about
++    foreach (sm IN LISTS sms)
++        string( REPLACE "sm_" "" sm "${sm}") # Remove sm_ prefix
++        if (sm LESS MIN_SM)
++            set( MIN_SM "${sm}" )
++        endif()
++        if (sm GREATER MAX_SM)
++            set( MAX_SM "${sm}" )
++        endif()
++        list( APPEND NV_SM -gencode arch=compute_${sm},code=sm_${sm} )
++        string( REGEX REPLACE "([0-9])([0-9])" "\\1.\\2" cuda_arch "${sm}" )
++        message( STATUS "    compile for CUDA arch ${cuda_arch}" )
++    endforeach()
++
++    if (NOT NV_SM)
++        message( FATAL_ERROR
++                 "GPU_TARGET must contain one or more of "
++                 "Fermi, Kepler, Maxwell, Pascal, Volta, Turing, Ampere, or valid sm_[0-9][0-9]"
++                 "Was: ${GPU_TARGET}" )
++    endif()
++
++    set( MIN_ARCH ${MIN_SM}0 )
++    set( NV_COMP -gencode arch=compute_${MAX_SM},code=compute_${MAX_SM} )
++
++    list( APPEND CUDA_NVCC_FLAGS -Xcompiler -fPIC ${NV_SM} ${NV_COMP} ${FORTRAN_CONVENTION} )
++    add_definitions( -DMAGMA_HAVE_CUDA=1 ) 
++    add_definitions( -DMAGMA_CUDA_ARCH_MIN=${MIN_ARCH} ) 
+     message( STATUS "Define -DMAGMA_HAVE_CUDA -DMAGMA_CUDA_ARCH_MIN=${MIN_ARCH}" )
+   else()
+     message( STATUS "Could not find CUDA" )
diff --git a/Golden_Repo/m/magma/magma-2.6.2-foss-2022a-CUDA-11.7.eb b/Golden_Repo/m/magma/magma-2.6.2-foss-2022a-CUDA-11.7.eb
index 270b017de4d7da9ad11a4917b23378fbc61ee0e1..27a5e9a080037f1cf26611e2db75345fa2089368 100644
--- a/Golden_Repo/m/magma/magma-2.6.2-foss-2022a-CUDA-11.7.eb
+++ b/Golden_Repo/m/magma/magma-2.6.2-foss-2022a-CUDA-11.7.eb
@@ -26,12 +26,13 @@ builddependencies = [
 ]
 dependencies = [
     ('CUDA', '11.7', '', SYSTEM),
-    ('UCX', 'default'),
 ]
 
 # make sure both static and shared libs are built
 configopts = [
-    '-DBUILD_SHARED_LIBS=%s -DGPU_TARGET="%%(cuda_sm_space_sep)s" ' % local_shared for local_shared in ('ON', 'OFF')
+    '-DMKL_ILP64=ON \
+     -DBUILD_SHARED_LIBS=%s \
+     -DGPU_TARGET="%%(cuda_sm_space_sep)s" ' % local_shared for local_shared in ('ON', 'OFF')
 ]
 
 sanity_check_paths = {