spack/var/spack/repos/spack_repo/builtin/packages/cuda/package.py
2025-05-12 08:34:12 +02:00

847 lines
41 KiB
Python

# Copyright Spack Project Developers. See COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
import platform
import re
from glob import glob
from spack.package import *
# FIXME Remove hack for polymorphic versions
# This package uses a ugly hack to be able to dispatch, given the same
# version, to different binary packages based on the platform that is
# running spack. See #13827 for context.
# If you need to add a new version, please be aware that:
# - versions in the following dict are automatically added to the package
# - version tuple must be in the form (checksum, url)
# - checksum must be sha256
# - package key must be in the form '{os}-{arch}' where 'os' is in the
# format returned by platform.system() and 'arch' by platform.machine()
_versions = {
"12.8.1": {
"Linux-aarch64": (
"353cbab1b57282a1001071796efd95c1e40ec27a3375e854d12637eaa1c6107c",
"https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux_sbsa.run",
),
"Linux-x86_64": (
"228f6bcaf5b7618d032939f431914fc92d0e5ed39ebe37098a24502f26a19797",
"https://developer.download.nvidia.com/compute/cuda/12.8.1/local_installers/cuda_12.8.1_570.124.06_linux.run",
),
},
"12.8.0": {
"Linux-aarch64": (
"5bc211f00c4f544da6e3fc3a549b3eb0a7e038439f5f3de71caa688f2f6b132c",
"https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux_sbsa.run",
),
"Linux-x86_64": (
"610867dcd6d94c4e36c4924f1d01b9db28ec08164e8af6c764f21b84200695f8",
"https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.8.0_570.86.10_linux.run",
),
},
"12.6.3": {
"Linux-aarch64": (
"213ea63a6357020978a8b0a79a8c9d12a2a5941afa1cdc69d5a3f933fa8bed04",
"https://developer.download.nvidia.com/compute/cuda/12.6.3/local_installers/cuda_12.6.3_560.35.05_linux_sbsa.run",
),
"Linux-x86_64": (
"81d60e48044796d7883aa8a049afe6501b843f2c45639b3703b2378de30d55d3",
"https://developer.download.nvidia.com/compute/cuda/12.6.3/local_installers/cuda_12.6.3_560.35.05_linux.run",
),
},
"12.6.2": {
"Linux-aarch64": (
"2249408848b705c18b9eadfb5161b52e4e36fcc5753647329cce93db141e5466",
"https://developer.download.nvidia.com/compute/cuda/12.6.2/local_installers/cuda_12.6.2_560.35.03_linux_sbsa.run",
),
"Linux-x86_64": (
"3729a89cb58f7ca6a46719cff110d6292aec7577585a8d71340f0dbac54fb237",
"https://developer.download.nvidia.com/compute/cuda/12.6.2/local_installers/cuda_12.6.2_560.35.03_linux.run",
),
},
"12.6.1": {
"Linux-aarch64": (
"b39ac88184798e8c313e6ced23dd128f13ab30c199b96bd9c0bee07dbdd31400",
"https://developer.download.nvidia.com/compute/cuda/12.6.1/local_installers/cuda_12.6.1_560.35.03_linux_sbsa.run",
),
"Linux-x86_64": (
"73acce7243519625f259509f5dcff6dc8fbd23dca53b852aa9ce382009e92e9d",
"https://developer.download.nvidia.com/compute/cuda/12.6.1/local_installers/cuda_12.6.1_560.35.03_linux.run",
),
},
"12.6.0": {
"Linux-aarch64": (
"398db7baca17d51ad5035c606714c96380c965fd1742478c743bc6bbb1d8f63c",
"https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda_12.6.0_560.28.03_linux_sbsa.run",
),
"Linux-x86_64": (
"31ab04394e69b14dd8656e2b44c2877db1a0e898dff8a7546a4c628438101b94",
"https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda_12.6.0_560.28.03_linux.run",
),
},
"12.5.1": {
"Linux-aarch64": (
"353e8abc52ca80adf05002b775c7b3a2d2feefcf1c25ae13f8757f9a11efba3e",
"https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda_12.5.1_555.42.06_linux_sbsa.run",
),
"Linux-x86_64": (
"b5e0a779e089c86610051141c4cf498beef431858ec63398107391727ecbdb04",
"https://developer.download.nvidia.com/compute/cuda/12.5.1/local_installers/cuda_12.5.1_555.42.06_linux.run",
),
},
"12.5.0": {
"Linux-aarch64": (
"e7b864c9ae27cef77cafc78614ec33cbb0a27606af9375deffa09c4269a07f04",
"https://developer.download.nvidia.com/compute/cuda/12.5.0/local_installers/cuda_12.5.0_555.42.02_linux_sbsa.run",
),
"Linux-x86_64": (
"90fcc7df48226434065ff12a4372136b40b9a4cbf0c8602bb763b745f22b7a99",
"https://developer.download.nvidia.com/compute/cuda/12.5.0/local_installers/cuda_12.5.0_555.42.02_linux.run",
),
},
"12.4.1": {
"Linux-aarch64": (
"b0fbc77effa225498974625b6b08b3f6eff4a37e379f5b60f1d3827b215ad19b",
"https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux_sbsa.run",
),
"Linux-x86_64": (
"367d2299b3a4588ab487a6d27276ca5d9ead6e394904f18bccb9e12433b9c4fb",
"https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run",
),
"Linux-ppc64le": (
"677f44da10dd81396cb53a32c4e26eccdc24912063cb2e3beb3bbcb1658ef451",
"https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux_ppc64le.run",
),
},
"12.4.0": {
"Linux-aarch64": (
"b12bfe6c36d32ecf009a6efb0024325c5fc389fca1143f5f377ae2555936e803",
"https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux_sbsa.run",
),
"Linux-x86_64": (
"e6a842f4eca9490575cdb68b6b1bb78d47b95a897de48dee292c431892e57d17",
"https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run",
),
"Linux-ppc64le": (
"ef9a712daccf2805b4422f2301ff0eaa5c3ad41ef5d64b8626773bce7d1f41fe",
"https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux_ppc64le.run",
),
},
"12.3.2": {
"Linux-aarch64": (
"761b84e292b94c4d330f445d36326dfff90a418e909fb0baf3d6f03e24106d08",
"https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda_12.3.2_545.23.08_linux_sbsa.run",
),
"Linux-x86_64": (
"24b2afc9f770d8cf43d6fa7adc2ebfd47c4084db01bdda1ce3ce0a4d493ba65b",
"https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda_12.3.2_545.23.08_linux.run",
),
"Linux-ppc64le": (
"b876936fc80de10653523eadd846065db346b38ba6296f2d365772259cb2f198",
"https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda_12.3.2_545.23.08_linux_ppc64le.run",
),
},
"12.3.1": {
"Linux-aarch64": (
"bce6bb8b293c33c3ed0c1b65120c70587cc29e1b94ea8679ebb14c32b3858b5e",
"https://developer.download.nvidia.com/compute/cuda/12.3.1/local_installers/cuda_12.3.1_545.23.08_linux_sbsa.run",
),
"Linux-x86_64": (
"b73d18ccd5ff85bbae32b425dfb82729612ede65b07a37cd5e2b574190614038",
"https://developer.download.nvidia.com/compute/cuda/12.3.1/local_installers/cuda_12.3.1_545.23.08_linux.run",
),
"Linux-ppc64le": (
"9da7e6e2beadc933aab73de79a84e133ddf03226371d3d7af83502748a978568",
"https://developer.download.nvidia.com/compute/cuda/12.3.1/local_installers/cuda_12.3.1_545.23.08_linux_ppc64le.run",
),
},
"12.3.0": {
"Linux-aarch64": (
"9a8fb8acf46b88faf0d711bda3149e1706efbbae02fcb40ab72addfd0e9ce5df",
"https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux_sbsa.run",
),
"Linux-x86_64": (
"7c13face3af64d6e1648d6e3101d31c8111e747143acb0077d973c1690820422",
"https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux.run",
),
"Linux-ppc64le": (
"de15c04380ec35b194c07503bf434837bac5b427cf77b19a63962b1653d195d5",
"https://developer.download.nvidia.com/compute/cuda/12.3.0/local_installers/cuda_12.3.0_545.23.06_linux_ppc64le.run",
),
},
"12.2.2": {
"Linux-aarch64": (
"4113a15e6b27a02638c72edeb5f89de4c9ea312febba12fc4cefff2edc882268",
"https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux_sbsa.run",
),
"Linux-x86_64": (
"2b39aae3e7618d9f59a3c8fa1f1bc61f29c0b0e0df75fb05076badb352952ef2",
"https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run",
),
"Linux-ppc64le": (
"18848278e7f2bd4b4481f5665633d7e3d46e9a562d175d5ff278218188b01342",
"https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux_ppc64le.run",
),
},
"12.2.1": {
"Linux-aarch64": (
"a9ae6bd02684c7acfb229484368bf2691d592767ce1aed10ae9aed92c81b9f09",
"https://developer.download.nvidia.com/compute/cuda/12.2.1/local_installers/cuda_12.2.1_535.86.10_linux_sbsa.run",
),
"Linux-x86_64": (
"c51e814eaa756160a73289b1f35880cc38c18e1ddedc87f46f7ff0d1696bdb95",
"https://developer.download.nvidia.com/compute/cuda/12.2.1/local_installers/cuda_12.2.1_535.86.10_linux.run",
),
"Linux-ppc64le": (
"8f1aa60cc1e14fd7853eeecd53a78b7dfb2b2da0512a312cc35e4f5b79454f94",
"https://developer.download.nvidia.com/compute/cuda/12.2.1/local_installers/cuda_12.2.1_535.86.10_linux_ppc64le.run",
),
},
"12.2.0": {
"Linux-aarch64": (
"9c90d79bb63952cd30f1f57f9f8fe11e7a8967bba6f824df45d3464b5d37e5d8",
"https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux_sbsa.run",
),
"Linux-x86_64": (
"ecf3d2afadcbac029f0f4505785810d52d006e4b87ba79ff3f984336a2bbf518",
"https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run",
),
"Linux-ppc64le": (
"f7b5fde5f727b51c380c6199200d0525e8585475944ff8ad2791d06734f54230",
"https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux_ppc64le.run",
),
},
"12.1.1": {
"Linux-aarch64": (
"45ea4cd860f0a26d3db8ce032530f2ee0b55abdd587545213d395a73623b4278",
"https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux_sbsa.run",
),
"Linux-x86_64": (
"d74022d41d80105319dfa21beea39b77a5b9919539c0487a05caaf2446d6a70e",
"https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run",
),
"Linux-ppc64le": (
"c5950381f2c01fd52692372fc8e51d599e940ada2af2c82c3cc854ecff933eae",
"https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux_ppc64le.run",
),
},
"12.1.0": {
"Linux-aarch64": (
"1d0dd884f5257c12471dc455dc1a4aee8d620191737c0b2e40f016d8adc9d009",
"https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux_sbsa.run",
),
"Linux-x86_64": (
"68699036c12d71adb9ad2799dce2ff070270fab4488b90920b9756ab3f52c41c",
"https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux.run",
),
"Linux-ppc64le": (
"8d75bd9da953a51062b89b8c752cffcf02b02c85cb461291d354ac2cffb2da48",
"https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda_12.1.0_530.30.02_linux_ppc64le.run",
),
},
"12.0.1": {
"Linux-aarch64": (
"835270a8db419b9dbaefc1bab8fe5caf6f2caf381975c4b0d35cc0718c26074a",
"https://developer.download.nvidia.com/compute/cuda/12.0.1/local_installers/cuda_12.0.1_525.85.12_linux_sbsa.run",
),
"Linux-x86_64": (
"1b205a06272f1463f477276fdab903f3f666917c068e520738001e69c7a1875b",
"https://developer.download.nvidia.com/compute/cuda/12.0.1/local_installers/cuda_12.0.1_525.85.12_linux.run",
),
"Linux-ppc64le": (
"1e81040223c25fd72895a1348e32463d7d0f5a7e74b5d2ace897220cb6d4d849",
"https://developer.download.nvidia.com/compute/cuda/12.0.1/local_installers/cuda_12.0.1_525.85.12_linux_ppc64le.run",
),
},
"12.0.0": {
"Linux-aarch64": (
"cd13e9c65d4c8f895a968706f46064d536be09f9706bce081cc864b7e4fa4544",
"https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.60.13_linux_sbsa.run",
),
"Linux-x86_64": (
"905e9b9516900839fb76064719db752439f38b8cb730b49335d8bd53ddfad392",
"https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.60.13_linux.run",
),
"Linux-ppc64le": (
"117fe045c71668e45d41c6119b6f27875370c78e33fc56795b6fe014c796ec60",
"https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda_12.0.0_525.60.13_linux_ppc64le.run",
),
},
"11.8.0": {
"Linux-aarch64": (
"e6e9a8d31163c9776b5e313fd7590877c5684e1ecddee741154f95704d4ed27c",
"https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux_sbsa.run",
),
"Linux-x86_64": (
"9223c4af3aebe4a7bbed9abd9b163b03a1b34b855fbc2b4a0d1b706ac09a5a16",
"https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run",
),
"Linux-ppc64le": (
"f917fb7617033223938543ad3ae923190d99507acc08a399d752a2868e87349d",
"https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux_ppc64le.run",
),
},
"11.7.1": {
"Linux-aarch64": (
"1607b98c30cb8efa52b9c8f564ec92d26ee1922cb677740aafacce313e544ecd",
"https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda_11.7.1_515.65.01_linux_sbsa.run",
),
"Linux-x86_64": (
"52286a29706549b7d0feeb0e7e3eca1b15287c436a69fa880ad385b1be3e04db",
"https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda_11.7.1_515.65.01_linux.run",
),
"Linux-ppc64le": (
"f59fc381cbd903da55bfea9f81534bd4d20e3db716c332be3d2c4804efc2ec6b",
"https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda_11.7.1_515.65.01_linux_ppc64le.run",
),
},
"11.7.0": {
"Linux-aarch64": (
"e777839a618ca9a3d5ad42ded43a1b6392af2321a7327635a4afcc986876a21b",
"https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux_sbsa.run",
),
"Linux-x86_64": (
"087fdfcbba1f79543b1f78e43a8dfdac5f6db242d042dde820e16dc185892f26",
"https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run",
),
"Linux-ppc64le": (
"74a507ac54067c258e6b7c9063c98d411116ecc5c5397b1f6e6a999e86dff08a",
"https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux_ppc64le.run",
),
},
"11.6.2": {
"Linux-aarch64": (
"b20c014c6bba36b13c50da167ad42e9bd1cea24f3b6297b495ea129c0889f36e",
"https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux_sbsa.run",
),
"Linux-x86_64": (
"99b7a73dcc52a52cef4c1fceb4a60c3015ac9b6404082c1677d9efdaba1d4593",
"https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux.run",
),
"Linux-ppc64le": (
"869232ff8dbf295a71609738ac9e1b0079ca75597b427f1c026f42b36896afe8",
"https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux_ppc64le.run",
),
},
"11.6.1": {
"Linux-aarch64": (
"80586b003d58030004d465f5331dc69ee26c95a29516fb2488ff10f034139cb2",
"https://developer.download.nvidia.com/compute/cuda/11.6.1/local_installers/cuda_11.6.1_510.47.03_linux_sbsa.run",
),
"Linux-x86_64": (
"ab219afce00b74200113269866fbff75ead037bcfc23551a8338c2684c984d7e",
"https://developer.download.nvidia.com/compute/cuda/11.6.1/local_installers/cuda_11.6.1_510.47.03_linux.run",
),
"Linux-ppc64le": (
"ef762efbc00b67d572823c6ec338cc2c0cf0c096f41e6bce18e8d4501f260956",
"https://developer.download.nvidia.com/compute/cuda/11.6.1/local_installers/cuda_11.6.1_510.47.03_linux_ppc64le.run",
),
},
"11.6.0": {
"Linux-aarch64": (
"5898579f5e59b708520883cb161089f5e4f3426158d1e9f973c49d224085d1d2",
"https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux_sbsa.run",
),
"Linux-x86_64": (
"1783da6d63970786040980b57fa3cb6420142159fc7d0e66f8f05c4905d98c83",
"https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux.run",
),
"Linux-ppc64le": (
"c86b866a42baf59ddc6f1f4a79e6d77213c90749e77e574f0e0d796a749ab7d0",
"https://developer.download.nvidia.com/compute/cuda/11.6.0/local_installers/cuda_11.6.0_510.39.01_linux_ppc64le.run",
),
},
"11.5.2": {
"Linux-aarch64": (
"31337c8bdc224fa1bd07bc4b6a745798392428118cc8ea0fa4446ee4ad47dd30",
"https://developer.download.nvidia.com/compute/cuda/11.5.2/local_installers/cuda_11.5.2_495.29.05_linux_sbsa.run",
),
"Linux-x86_64": (
"74959abf02bcba526f0a3aae322c7641b25da040ccd6236d07038f81997b73a6",
"https://developer.download.nvidia.com/compute/cuda/11.5.2/local_installers/cuda_11.5.2_495.29.05_linux.run",
),
"Linux-ppc64le": (
"45c468f430436b3e95d5e485a6ba0ec1fa2b23dc6c551c1307b79996ecf0a7ed",
"https://developer.download.nvidia.com/compute/cuda/11.5.2/local_installers/cuda_11.5.2_495.29.05_linux_ppc64le.run",
),
},
"11.5.1": {
"Linux-aarch64": (
"73e1d0e97c7fa686efe7e00fb1e5f179372c4eec8e14d4f44ab58d5f6cf57f63",
"https://developer.download.nvidia.com/compute/cuda/11.5.1/local_installers/cuda_11.5.1_495.29.05_linux_sbsa.run",
),
"Linux-x86_64": (
"60bea2fc0fac95574015f865355afbf599422ec2c85554f5f052b292711a4bca",
"https://developer.download.nvidia.com/compute/cuda/11.5.1/local_installers/cuda_11.5.1_495.29.05_linux.run",
),
"Linux-ppc64le": (
"9e0e494d945634fe8ad3e12d7b91806aa4220ed27487bb211030d651b27c67a9",
"https://developer.download.nvidia.com/compute/cuda/11.5.1/local_installers/cuda_11.5.1_495.29.05_linux_ppc64le.run",
),
},
"11.5.0": {
"Linux-aarch64": (
"6ea9d520cc956cc751a5ac54f4acc39109627f4e614dd0b1a82cc86f2aa7d8c4",
"https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux_sbsa.run",
),
"Linux-x86_64": (
"ae0a1693d9497cf3d81e6948943e3794636900db71c98d58eefdacaf7f1a1e4c",
"https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux.run",
),
"Linux-ppc64le": (
"95baefdc5adf165189407b119861ffb2e9800fd94d7fc81d10fb81ed36dc12db",
"https://developer.download.nvidia.com/compute/cuda/11.5.0/local_installers/cuda_11.5.0_495.29.05_linux_ppc64le.run",
),
},
"11.4.4": {
"Linux-aarch64": (
"c5c08531e48e8fdc2704fa1c1f7195f2c7edd2ee10a466d0e24d05b77d109435",
"https://developer.download.nvidia.com/compute/cuda/11.4.4/local_installers/cuda_11.4.4_470.82.01_linux_sbsa.run",
),
"Linux-x86_64": (
"44545a7abb4b66dfc201dcad787b5e8352e5b7ddf3e3cc5b2e9177af419c25c8",
"https://developer.download.nvidia.com/compute/cuda/11.4.4/local_installers/cuda_11.4.4_470.82.01_linux.run",
),
"Linux-ppc64le": (
"c71cd4e6c05fde11c0485369a73e7f356080e7a18f0e3ad7244e8fc03a9dd3e2",
"https://developer.download.nvidia.com/compute/cuda/11.4.4/local_installers/cuda_11.4.4_470.82.01_linux_ppc64le.run",
),
},
"11.4.3": {
"Linux-aarch64": (
"e02db34a487ea3de3eec9db80efd09f12eb69d55aca686cecaeae96a9747b1d4",
"https://developer.download.nvidia.com/compute/cuda/11.4.3/local_installers/cuda_11.4.3_470.82.01_linux_sbsa.run",
),
"Linux-x86_64": (
"749183821ffc051e123f12ebdeb171b263d55b86f0dd7c8f23611db1802d6c37",
"https://developer.download.nvidia.com/compute/cuda/11.4.3/local_installers/cuda_11.4.3_470.82.01_linux.run",
),
"Linux-ppc64le": (
"08f29cc3ed0b3b82dd9b007186237be2352bb552f99230c450a25e768f5754ee",
"https://developer.download.nvidia.com/compute/cuda/11.4.3/local_installers/cuda_11.4.3_470.82.01_linux_ppc64le.run",
),
},
"11.4.2": {
"Linux-aarch64": (
"f2c4a52e06329606c8dfb7c5ea3f4cb4c0b28f9d3fdffeeb734fcc98daf580d8",
"https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux_sbsa.run",
),
"Linux-x86_64": (
"bbd87ca0e913f837454a796367473513cddef555082e4d86ed9a38659cc81f0a",
"https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux.run",
),
"Linux-ppc64le": (
"a917c2e53dc13fdda7def71fd40920bf3809d5a2caa3e9acfe377fb9fb22f12d",
"https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux_ppc64le.run",
),
},
"11.4.1": {
"Linux-aarch64": (
"8efa725a41dfd3c0c0f453c2dd535d149154102bf2b791718859417b4f84f922",
"https://developer.download.nvidia.com/compute/cuda/11.4.1/local_installers/cuda_11.4.1_470.57.02_linux_sbsa.run",
),
"Linux-x86_64": (
"dd6c339a719989d2518f5d54eeac1ed707d0673f8664ba0c4d4b2af7c3ba0005",
"https://developer.download.nvidia.com/compute/cuda/11.4.1/local_installers/cuda_11.4.1_470.57.02_linux.run",
),
"Linux-ppc64le": (
"dd92ca04f76ad938da3480e2901c0e52dbff6028ada63c09071ed9e3055dc361",
"https://developer.download.nvidia.com/compute/cuda/11.4.1/local_installers/cuda_11.4.1_470.57.02_linux_ppc64le.run",
),
},
"11.4.0": {
"Linux-aarch64": (
"f0c8e80d98a601ddca031b6764459984366008c7d3847e7c7f99b36bd4438e3c",
"https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux_sbsa.run",
),
"Linux-x86_64": (
"d219db30f7415a115a4ea22bdbb5984b0a18f7f891cad6074c5da45d223aaa4b",
"https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux.run",
),
"Linux-ppc64le": (
"6eb2fd0d9d5bc39fb243b5e1789ff827f325d098cd1fbb828a0499552b9544cc",
"https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux_ppc64le.run",
),
},
"11.3.1": {
"Linux-aarch64": (
"39990d3da88b21289ac20850bc183f0b66275f32e1f562b551c05843bf506e4c",
"https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux_sbsa.run",
),
"Linux-x86_64": (
"ad93ea98efced35855c58d3a0fc326377c60917cb3e8c017d3e6d88819bf2934",
"https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux.run",
),
"Linux-ppc64le": (
"220f2c10a21500d62b03c6848c1659ebb3a8e10dc0915ab87b86b397058407c5",
"https://developer.download.nvidia.com/compute/cuda/11.3.1/local_installers/cuda_11.3.1_465.19.01_linux_ppc64le.run",
),
},
"11.3.0": {
"Linux-aarch64": (
"f7b284cf055fcf18be9a9aa216e3c7968d3e011446eb0c7200a3353c223ce718",
"https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux_sbsa.run",
),
"Linux-x86_64": (
"262da7f77db177b153a6b70b5812210f3f72f00eb608ab9cf2a4582328c4bf5c",
"https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run",
),
"Linux-ppc64le": (
"c0010107933b575a87e27b1293e5dc32b74201486f4ae2f4c8695ea727d22857",
"https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux_ppc64le.run",
),
},
"11.2.2": {
"Linux-aarch64": (
"2f915ad631331eebdafaabd971723a60290ae8bb090d771075b9e6a0b28cbae6",
"https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux_sbsa.run",
),
"Linux-x86_64": (
"0a2e477224af7f6003b49edfd2bfee07667a8148fe3627cfd2765f6ad72fa19d",
"https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux.run",
),
"Linux-ppc64le": (
"2304ec235fe5d1f8bf75f00dc2c2d11473759dc23428dbbd5fb5040bc8c757e3",
"https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux_ppc64le.run",
),
},
"11.2.1": {
"Linux-aarch64": (
"4b322fa6477d1a2cd2f2f526fa520c0f90bef2c264ef8435cb016bebb5456c5e",
"https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda_11.2.1_460.32.03_linux_sbsa.run",
),
"Linux-x86_64": (
"1da98cb897cc5f58a7445a4a66ca4f6926867706cb3af58a669cdcd8dc3d17c8",
"https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda_11.2.1_460.32.03_linux.run",
),
"Linux-ppc64le": (
"b3e8b6cd76872deb3acd050d32e197bc1c655e142b169070f0f9753680461a3f",
"https://developer.download.nvidia.com/compute/cuda/11.2.1/local_installers/cuda_11.2.1_460.32.03_linux_ppc64le.run",
),
},
"11.2.0": {
"Linux-aarch64": (
"c11dc274660e9b47b0f25ca66861a7406246a7191f1b04d0710515fcac0fa6cd",
"https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux_sbsa.run",
),
"Linux-x86_64": (
"9c50283241ac325d3085289ed9b9c170531369de41165ce271352d4a898cbdce",
"https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux.run",
),
"Linux-ppc64le": (
"adc3267df5dbfdaf51cb4c9b227ba6bfd979a39d9b4136bba0eba6b1dd2a2731",
"https://developer.download.nvidia.com/compute/cuda/11.2.0/local_installers/cuda_11.2.0_460.27.04_linux_ppc64le.run",
),
},
"11.1.1": {
"Linux-aarch64": (
"9ab1dbafba205c06bea8c88e38cdadb3038af19cb56e7b3ba734d3d7a84b8f02",
"https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux_sbsa.run",
),
"Linux-x86_64": (
"3eae6727086024925ebbcef3e9a45ad379d8490768fd00f9c2d8b6fd9cd8dd8f",
"https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run",
),
"Linux-ppc64le": (
"023e571fe26ee829c98138dfc305a92279854aac7d184d255fd58c06c6af3c17",
"https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux_ppc64le.run",
),
},
"11.1.0": {
"Linux-aarch64": (
"878cbd36c5897468ef28f02da50b2f546af0434a8a89d1c724a4d2013d6aa993",
"https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux_sbsa.run",
),
"Linux-x86_64": (
"858cbab091fde94556a249b9580fadff55a46eafbcb4d4a741d2dcd358ab94a5",
"https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux.run",
),
"Linux-ppc64le": (
"a561e6f7f659bc4100e4713523b0b8aad6b36aa77fac847f6423e7780c750064",
"https://developer.download.nvidia.com/compute/cuda/11.1.0/local_installers/cuda_11.1.0_455.23.05_linux_ppc64le.run",
),
},
"11.0.3": {
"Linux-aarch64": (
"1e24f61f79c1043aa3d1d126ff6158daa03a62a51b5195a2ed5fbe75c3b718f3",
"https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux_sbsa.run",
),
"Linux-x86_64": (
"b079c4e408adf88c3f1ffb8418a97dc4227c37935676b4bf4ca0beec6c328cc0",
"https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run",
),
"Linux-ppc64le": (
"4775b21df004b1433bafff9b48a324075c008509f4c0fe28cd060d042d2e0794",
"https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux_ppc64le.run",
),
},
"11.0.2": {
"Linux-aarch64": (
"23851e30f7c47a1baad92891abde0adbc783de5962c7480b9725198ceacda4a0",
"https://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux_sbsa.run",
),
"Linux-x86_64": (
"48247ada0e3f106051029ae8f70fbd0c238040f58b0880e55026374a959a69c1",
"https://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run",
),
"Linux-ppc64le": (
"db06d0f3fbf6f7aa1f106fc921ad1c86162210a26e8cb65b171c5240a3bf75da",
"https://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux_ppc64le.run",
),
},
"10.2.89": {
"Linux-x86_64": (
"560d07fdcf4a46717f2242948cd4f92c5f9b6fc7eae10dd996614da913d5ca11",
"https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run",
),
"Linux-ppc64le": (
"5227774fcb8b10bd2d8714f0a716a75d7a2df240a9f2a49beb76710b1c0fc619",
"https://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux_ppc64le.run",
),
},
"10.1.243": {
"Linux-x86_64": (
"e7c22dc21278eb1b82f34a60ad7640b41ad3943d929bebda3008b72536855d31",
"https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux.run",
),
"Linux-ppc64le": (
"b198002eef010bab9e745ae98e47567c955d00cf34cc8f8d2f0a6feb810523bf",
"https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_418.87.00_linux_ppc64le.run",
),
},
"10.0.130": {
"Linux-x86_64": (
"92351f0e4346694d0fcb4ea1539856c9eb82060c25654463bfd8574ec35ee39a",
"https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux",
)
},
"9.2.88": {
"Linux-x86_64": (
"8d02cc2a82f35b456d447df463148ac4cc823891be8820948109ad6186f2667c",
"https://developer.nvidia.com/compute/cuda/9.2/Prod/local_installers/cuda_9.2.88_396.26_linux",
)
},
"9.1.85": {
"Linux-x86_64": (
"8496c72b16fee61889f9281449b5d633d0b358b46579175c275d85c9205fe953",
"https://developer.nvidia.com/compute/cuda/9.1/Prod/local_installers/cuda_9.1.85_387.26_linux",
)
},
"9.0.176": {
"Linux-x86_64": (
"96863423feaa50b5c1c5e1b9ec537ef7ba77576a3986652351ae43e66bcd080c",
"https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run",
)
},
"8.0.61": {
"Linux-x86_64": (
"9ceca9c2397f841024e03410bfd6eabfd72b384256fbed1c1e4834b5b0ce9dc4",
"https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run",
)
},
"8.0.44": {
"Linux-x86_64": (
"64dc4ab867261a0d690735c46d7cc9fc60d989da0d69dc04d1714e409cacbdf0",
"https://developer.nvidia.com/compute/cuda/8.0/prod/local_installers/cuda_8.0.44_linux-run",
)
},
"7.5.18": {
"Linux-x86_64": (
"08411d536741075131a1858a68615b8b73c51988e616e83b835e4632eea75eec",
"https://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run",
)
},
"6.5.14": {
"Linux-x86_64": (
"f3e527f34f317314fe8fcd8c85f10560729069298c0f73105ba89225db69da48",
"https://developer.download.nvidia.com/compute/cuda/6_5/rel/installers/cuda_6.5.14_linux_64.run",
)
},
"6.0.37": {
"Linux-x86_64": (
"991e436c7a6c94ec67cf44204d136adfef87baa3ded270544fa211179779bc40",
"https://developer.download.nvidia.com/compute/cuda/6_0/rel/installers/cuda_6.0.37_linux_64.run",
)
},
}
class Cuda(Package):
"""CUDA is a parallel computing platform and programming model invented
by NVIDIA. It enables dramatic increases in computing performance by
harnessing the power of the graphics processing unit (GPU).
Note: This package does not currently install the drivers necessary
to run CUDA. These will need to be installed manually. See:
https://docs.nvidia.com/cuda/ for details."""
homepage = "https://developer.nvidia.com/cuda-zone"
maintainers("ax3l", "Rombur", "pauleonix")
executables = ["^nvcc$"]
skip_version_audit = ["platform=darwin", "platform=windows"]
for ver, packages in _versions.items():
pkg = packages.get(f"{platform.system()}-{platform.machine()}")
if pkg:
version(ver, sha256=pkg[0], url=pkg[1], expand=False)
# macOS Mojave drops NVIDIA graphics card support -- official NVIDIA
# drivers do not exist for Mojave. See
# https://devtalk.nvidia.com/default/topic/1043070/announcements/faq-about-macos-10-14-mojave-nvidia-drivers/
# Note that a CUDA Toolkit installer does exist for macOS Mojave at
# https://developer.nvidia.com/compute/cuda/10.1/Prod1/local_installers/cuda_10.1.168_mac.dmg,
# but support for Mojave is dropped in later versions, and none of the
# macOS NVIDIA drivers at
# https://www.nvidia.com/en-us/drivers/cuda/mac-driver-archive/ mention
# Mojave support -- only macOS High Sierra 10.13 is supported.
conflicts("arch=darwin-mojave-x86_64")
# cuda-12.8 libcusolver.so requires log2f@GLIBC_2.27
conflicts("glibc@:2.26", when="@12.8:")
variant(
"dev", default=False, description="Enable development dependencies, i.e to use cuda-gdb"
)
variant(
"allow-unsupported-compilers",
default=False,
sticky=True,
description="Allow unsupported host compiler and CUDA version combinations",
)
depends_on("libxml2", when="@10.1.243:")
# cuda-gdb needed libncurses.so.5 before 11.4.0
# see https://docs.nvidia.com/cuda/archive/11.3.1/cuda-gdb/index.html#common-issues-oss
# see https://docs.nvidia.com/cuda/archive/11.4.0/cuda-gdb/index.html#release-notes
depends_on("ncurses abi=5", type="run", when="@:11.3.99+dev")
provides("opencl@:1.2", when="@7:")
provides("opencl@:1.1", when="@:6")
@classmethod
def determine_version(cls, exe):
output = Executable(exe)("--version", output=str, error=str)
match = re.search(r"Cuda compilation tools, release .*?, V(\S+)", output)
return match.group(1) if match else None
def setup_build_environment(self, env: EnvironmentModifications) -> None:
if self.spec.satisfies("@:8.0.61"):
# Perl 5.26 removed current directory from module search path,
# CUDA 9 has a fix for this, but CUDA 8 and lower don't.
env.append_path("PERL5LIB", self.stage.source_path)
if self.spec.satisfies("@10.1.243:"):
libxml2_home = self.spec["libxml2"].prefix
env.set("LIBXML2HOME", libxml2_home)
env.append_path("LD_LIBRARY_PATH", libxml2_home.lib)
def setup_dependent_build_environment(
self, env: EnvironmentModifications, dependent_spec: Spec
) -> None:
if "cxx" in dependent_spec:
env.set("CUDAHOSTCXX", dependent_spec["cxx"].package.cxx)
env.set("CUDA_HOME", self.prefix)
env.set("NVHPC_CUDA_HOME", self.prefix)
@property
def cmake_prefix_paths(self):
cmake_prefix_paths = [self.prefix]
if self.spec.satisfies("target=x86_64:"):
cub_path = self.prefix.targets + "/x86_64-linux/lib/cmake"
cmake_prefix_paths.append(cub_path)
return cmake_prefix_paths
def setup_run_environment(self, env: EnvironmentModifications) -> None:
env.set("CUDA_HOME", self.prefix)
env.set("NVHPC_CUDA_HOME", self.prefix)
def install(self, spec, prefix):
if os.path.exists("/tmp/cuda-installer.log"):
try:
os.remove("/tmp/cuda-installer.log")
except OSError:
if spec.satisfies("@10.1:"):
raise InstallError(
"The cuda installer will segfault due to the "
"presence of /tmp/cuda-installer.log "
"please remove the file and try again "
)
runfile = glob(join_path(self.stage.source_path, "cuda*_linux*"))[0]
# Note: NVIDIA does not officially support many newer versions of
# compilers. For example, on CentOS 6, you must use GCC 4.4.7 or
# older. See:
# http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#system-requirements
# https://gist.github.com/ax3l/9489132
# for details.
# CUDA 10.1 on ppc64le fails to copy some files, the workaround is adapted from
# https://forums.developer.nvidia.com/t/cuda-10-1-243-10-1-update-2-ppc64le-run-file-installation-issue/82433
# See also #21170
if spec.satisfies("@10.1.243") and platform.machine() == "ppc64le":
includedir = "targets/ppc64le-linux/include"
os.makedirs(os.path.join(prefix, includedir))
os.makedirs(os.path.join(prefix, "src"))
os.symlink(includedir, os.path.join(prefix, "include"))
install_shell = which("sh")
if self.spec.satisfies("@:8.0.61"):
# Perl 5.26 removed current directory from module search path.
# We are addressing this by exporting `PERL5LIB` earlier, but for some
# reason, it is not enough. One more file needs to be extracted before
# running the actual installer. This solution is one of the commonly
# found on the Internet, when people try to install CUDA <= 8 manually.
# For example: https://askubuntu.com/a/1087842
arguments = [runfile, "--tar", "mxvf", "./InstallUtils.pm"]
install_shell(*arguments)
# CUDA 10.1+ has different cmdline options for the installer
arguments = [
runfile, # the install script
"--silent", # disable interactive prompts
"--override", # override compiler version checks
"--toolkit", # install CUDA Toolkit
]
if spec.satisfies("@7:"):
# use stage dir instead of /tmp
mkdir(join_path(self.stage.path, "tmp"))
arguments.append("--tmpdir=%s" % join_path(self.stage.path, "tmp"))
if spec.satisfies("@10.1:"):
arguments.append("--installpath=%s" % prefix) # Where to install
else:
arguments.append("--verbose") # Verbose log file
arguments.append("--toolkitpath=%s" % prefix) # Where to install
install_shell(*arguments)
try:
os.remove("/tmp/cuda-installer.log")
except OSError:
pass
@property
def libs(self):
libs = find_libraries("libcudart", root=self.prefix, shared=True, recursive=True)
filtered_libs = []
# CUDA 10.0 provides Compatability libraries for running newer versions
# of CUDA with older drivers. These do not work with newer drivers.
for lib in libs:
parts = lib.split(os.sep)
if "compat" not in parts and "stubs" not in parts:
filtered_libs.append(lib)
return LibraryList(filtered_libs)
# Avoid binding stub libraries by absolute path
non_bindable_shared_objects = ["stubs"]
# contains precompiled binaries without rpaths
unresolved_libraries = ["*"]