!eWOErHSaiddIbsUNsJ:nixos.org

NixOS CUDA

326 Members
CUDA packages maintenance and support in nixpkgs | https://github.com/orgs/NixOS/projects/27/ | https://nixos.org/manual/nixpkgs/unstable/#cuda64 Servers

Load older messages


SenderMessageTime
2 Mar 2023
@connorbaker:matrix.orgconnor (he/him)

I'll check with MIN_ARCH too -- when I got rid of GPU_TARGET it switched to building the default set of GPU targets and I saw this in the CMake logs:

magma> -- Found CUDA
magma> --     CUDA_CUDART_LIBRARY: CUDA::cudart
magma> --     compile for CUDA arch 3.0 (Kepler)
magma> --     compile for CUDA arch 3.5 (Kepler)
magma> --     compile for CUDA arch 3.7 (Kepler)
magma> --     compile for CUDA arch 5.0 (Maxwell)
magma> --     compile for CUDA arch 6.0 (Pascal)
magma> -- Define -DMAGMA_HAVE_CUDA -DMAGMA_CUDA_ARCH_MIN=300
22:56:23
@ss:someonex.netSomeoneSerge (matrix works sometimes) Right, I see this too. Did you try providing empty GPU_TARGET? 22:57:04
@ss:someonex.netSomeoneSerge (matrix works sometimes)
In reply to @ss:someonex.net
Well, if they just switched to FindCUDAToolkit, that would've been perfect
LOOOOL
22:57:54
@ss:someonex.netSomeoneSerge (matrix works sometimes) They do use FindCUDAToolkit, but then they wrap it into their own set of weird options 22:58:13
@connorbaker:matrix.orgconnor (he/him) I just removed GPU_TARGET entirely, I'll try it with no value next 22:58:29
@connorbaker:matrix.orgconnor (he/him)

Okay, well setting it to the empty string definitely gave a different result:

magma> -- Found CUDA
magma> --     CUDA_CUDART_LIBRARY: CUDA::cudart
magma> -- Define -DMAGMA_HAVE_CUDA -DMAGMA_CUDA_ARCH_MIN=890
22:59:16
@ss:someonex.netSomeoneSerge (matrix works sometimes)They set the default list here: https://bitbucket.org/icl/magma/src/f4ec79e2c13a2347eff8a77a3be6f83bc2daec20/CMakeLists.txt#lines-12022:59:39
@connorbaker:matrix.orgconnor (he/him)

After this is done compiling, what's the easiest way to find out what architectures it built for? Would

cuobjdump result/lib/blarg | rg 'arch =' | sort | uniq

do the trick?

23:00:43
@ss:someonex.netSomeoneSerge (matrix works sometimes)Yes23:00:55
@connorbaker:matrix.orgconnor (he/him) What's the package name that provides that utility? I'd like to nix shell into it and not install CUDA system-wide :l 23:01:31
@ss:someonex.netSomeoneSerge (matrix works sometimes) cudaPackages.cuda_cuobjdump 23:01:59
@ss:someonex.netSomeoneSerge (matrix works sometimes)or something like it23:02:03
@connorbaker:matrix.orgconnor (he/him)

Awwww my heart ;(

$ cuobjdump ./result/lib/libmagma.so | rg "arch =" | sort -u
arch = sm_52
23:03:10
@ss:someonex.netSomeoneSerge (matrix works sometimes)Redacted or Malformed Event23:10:05
@ss:someonex.netSomeoneSerge (matrix works sometimes)Redacted or Malformed Event23:10:08
@ss:someonex.netSomeoneSerge (matrix works sometimes)Redacted or Malformed Event23:10:13
@ss:someonex.netSomeoneSerge (matrix works sometimes)Redacted or Malformed Event23:10:27
@ss:someonex.netSomeoneSerge (matrix works sometimes)
In reply to @connorbaker:matrix.org

Awwww my heart ;(

$ cuobjdump ./result/lib/libmagma.so | rg "arch =" | sort -u
arch = sm_52
Strange
23:13:25
@ss:someonex.netSomeoneSerge (matrix works sometimes) I think they end up reseting CUDA_ARCHITECTURES to an empty list 23:14:38
@ss:someonex.netSomeoneSerge (matrix works sometimes)
CMakeCache.txt:CMAKE_CUDA_ARCHITECTURES:STRING=52
CMakeCache.txt:CUDA_ARCHITECTURES:UNINITIALIZED=86
23:19:46
@ss:someonex.netSomeoneSerge (matrix works sometimes)Ok, I've got a good feeling about this one23:20:59
@ss:someonex.netSomeoneSerge (matrix works sometimes)
In reply to @hexa:lossy.network
we probably need https://github.com/numba/numba/pull/8691
https://github.com/numba/numba/pull/8691#issuecomment-1452616968
23:23:24
@hexa:lossy.networkhexawhat's the tl;dr?23:24:27
@hexa:lossy.networkhexaI did apply that series in python-updates23:24:37
@ss:someonex.netSomeoneSerge (matrix works sometimes)I saw that23:24:42
@ss:someonex.netSomeoneSerge (matrix works sometimes)The reason they weren't merging the PR was that they were using Anaconda's channels for their CI, and Anaconda never shipped the new numpy. AFAIU, they switched to conda-forge and are about to merge23:25:30
@ss:someonex.netSomeoneSerge (matrix works sometimes)
In reply to @ss:someonex.net
CMakeCache.txt:CMAKE_CUDA_ARCHITECTURES:STRING=52
CMakeCache.txt:CUDA_ARCHITECTURES:UNINITIALIZED=86
❯ cuobjdump /nix/store/mkrv74b38zx1afkkpj55xmnm68rgmywq-magma-2.7.1/lib/libmagma.so | rg 'arch =' | sort | uniq
arch = sm_86
23:31:22
@ss:someonex.netSomeoneSerge (matrix works sometimes) connor (he/him): how bad would it be if magma accepted both gpuTargets and cudaPackages.cudaFlags, but only used the latter for cuda capabilities? 23:49:13
3 Mar 2023
@connorbaker:matrix.orgconnor (he/him) Hmm...
So from what I could tell when I originally started on the Magma derivation, gpuTargets was used solely for AMD GPUs. In the hip attribute set (their equivalent of cudaPackages?), they have gpuTargets which is the equivalent of our cudaCapabilities (I think). In the original derivation, the gpuTargets attribute Magma takes had precedence over whatever hip.gpuTargets was.
00:56:31
@connorbaker:matrix.orgconnor (he/him) I like the idea of specifying per-package GPU target overrides, so when I refactored the derivation I made gpuTargets also take precedence over cudaPackages's capabilities 00:57:17

Show newer messages


Back to Room ListRoom Version: 9