diff --git a/ports/cuda/hash-linux-sbsa.cmake b/ports/cuda/hash-linux-sbsa.cmake new file mode 100644 index 00000000000000..fcba502a4927e6 --- /dev/null +++ b/ports/cuda/hash-linux-sbsa.cmake @@ -0,0 +1,49 @@ +set(cuda_cccl_HASH "2365047bb04d84f9cb2dba54ca23ca847cd58896114be7e4ac702c4aaf100548d84904745c28d08a4446f2952bc44fc8918bcc82d76ad6eb0e7fda1697800ec6") +set(cuda_cccl_URL "cuda_cccl/linux-sbsa/cuda_cccl-linux-sbsa-12.5.39-archive.tar.xz") +set(cuda_cudart_HASH "82e4ba7d7ea13f32e3731d5a8b5d870f834b937cad7566b71a4aa478bd4badc5a84707e345ee2d8419069c2f3d4de042a63aa1e83ea64dd7bf1cc50185626523") +set(cuda_cudart_URL "cuda_cudart/linux-sbsa/cuda_cudart-linux-sbsa-12.5.39-archive.tar.xz") +set(cuda_nvtx_HASH "8d4bc5a2109306e40a6eeb9c69207d9fa37bc9a53801a12365408638440097e08edb788eef704e03e2637a8823e1355fb79273d184bdcfdcff46bb2f54391e5a") +set(cuda_nvtx_URL "cuda_nvtx/linux-sbsa/cuda_nvtx-linux-sbsa-12.5.39-archive.tar.xz") +set(cuda_nvml_dev_HASH "516d50fd6ee69813e59fbb2fd8122df17f288d13a1c617bb6653005f648fdb7a67fe851a22238efdad22e44e1f0918280a0ff72e148d9ab83db2b46e0e646cf0") +set(cuda_nvml_dev_URL "cuda_nvml_dev/linux-sbsa/cuda_nvml_dev-linux-sbsa-12.5.39-archive.tar.xz") +set(cuda_nvrtc_HASH "3e11ce981074765f8845706c05f1af23a9183a21d8bdc77d869cdbf750deb750a6429efbd6de6ccb9eef480e078e5774e908e25f553b0b4906b322b829b05fab") +set(cuda_nvrtc_URL "cuda_nvrtc/linux-sbsa/cuda_nvrtc-linux-sbsa-12.5.40-archive.tar.xz") +set(cuda_profiler_api_HASH "b9402e4bb889c732c5b5671014057cc6f6880672e3da31e5c4fdbe1f3fce85199b4327b4a32dd74506316842b5976c4b682eb964c8edccaa1a21ecf5cc7db75b") +set(cuda_profiler_api_URL "cuda_profiler_api/linux-sbsa/cuda_profiler_api-linux-sbsa-12.5.39-archive.tar.xz") +set(libcublas_HASH "d511f52606f243cdc9fa70d9de65af1d9a520140662ae8175eb201eb5851fe4e52b19f43c14e269e5feab6dc6269b1d72b36cd6193dd94a4b25a643c94ee18d2") +set(libcublas_URL "libcublas/linux-sbsa/libcublas-linux-sbsa-12.5.2.13-archive.tar.xz") +set(libcufft_HASH "de294d8dd5fd26596e2831071356dba9b59f7387e402702fdfe655da2e48c275573f1b2d7646aaa59327e133917dd4f1d86006bc7fac968f5c0ad6e0383a5369") +set(libcufft_URL "libcufft/linux-sbsa/libcufft-linux-sbsa-11.2.3.18-archive.tar.xz") +set(libcurand_HASH "428330f3eeb6c559d48fdeacb61f6814238b2e37698d2ef1504886400c951dd4b7dc1af51da6aa953b19785f68b1c46f450e881c3010ad0c078ed3def15eda0e") +set(libcurand_URL "libcurand/linux-sbsa/libcurand-linux-sbsa-10.3.6.39-archive.tar.xz") +set(libcusolver_HASH "4c8ead100dca3848782065cb892b82e01fa088529527293b59cf904ef62119f46f8619695cbc359414b774aa03b2948cfcc03ce8487bc12ebbf4085441e70f87") +set(libcusolver_URL "libcusolver/linux-sbsa/libcusolver-linux-sbsa-11.6.2.40-archive.tar.xz") +set(libcusparse_HASH "3e937b9f1c8a738a41305551ff163a480d62fe65d7c218671af5bbc7a53bedaa1650022c40e58cb93332c3ab605fe47a7628a36de6e4d7b65f877f0aabb4195d") +set(libcusparse_URL "libcusparse/linux-sbsa/libcusparse-linux-sbsa-12.4.1.24-archive.tar.xz") +set(libnpp_HASH "0ecb788458414c0cb5193a1f7fddbb554bc021b5486f3d45fd965f3701ff2a089f8bb6132a97227099aa33cfa8a0ba505b1468a5ec37b65339cfeb2a1ca9d4fa") +set(libnpp_URL "libnpp/linux-sbsa/libnpp-linux-sbsa-12.3.0.116-archive.tar.xz") +set(libnvjitlink_HASH "38fe567e60291234b40e3ae9ef446cb6fa2a77b3c716353ba80f935945f477055793fadf6b7d3faf81361dd47b11aab8bf9f1f76621df9e4ed637600a36cd68f") +set(libnvjitlink_URL "libnvjitlink/linux-sbsa/libnvjitlink-linux-sbsa-12.5.40-archive.tar.xz") +set(libnvjpeg_HASH "d2d72f8df6b5d3c4058149715a8d88d1464da572443b9e70f3af3598abd5c985e2d84bfb6e8996aefe8a3d5d76cb0ef981063ce9b7cb8f10819d0231b02dd218") +set(libnvjpeg_URL "libnvjpeg/linux-sbsa/libnvjpeg-linux-sbsa-12.3.2.38-archive.tar.xz") +set(fabricmanager_HASH "3659ebd090786834b2e028798f4ab73b0e309fd19d51d773d46250b3d9cc5a145fca5bf6b12fe7c644582d62512355762931b004cb9f39ed1250f9f109bffc2d") +set(fabricmanager_URL "fabricmanager/linux-sbsa/fabricmanager-linux-sbsa-555.42.02-archive.tar.xz") +set(libnvidia_nscq_HASH "c2dfc0698925a7dcc3996134b02519ee887a2c4aee7ce3968e608df5bc8ce9c7be3b8bdba8bb09e8e865e4b609758773348cb142ba4b19f99e94d6d1143c9cae") +set(libnvidia_nscq_URL "libnvidia_nscq/linux-sbsa/libnvidia_nscq-linux-sbsa-555.42.02-archive.tar.xz") +set(libcufile_HASH "d06b76a0cedec661cdde567b2b8bfde6f0201ac7a5a368338200c5ca7a2a2a9284fea75a1db08398c57be467eb136b6cde34f6def36dd742d58cb544410c356e") +set(libcufile_URL "libcufile/linux-sbsa/libcufile-linux-sbsa-1.10.0.4-archive.tar.xz") +set(nvidia_fs_HASH "e6b0eb589479eb5a59d6ffaaf248902a6607a380299cf953cf0aaec2605b1af1402a26371d38cd9c2796bff9d2c8e6280f71fafe93dafbbfc56e015ccc96ae89") +set(nvidia_fs_URL "nvidia_fs/linux-sbsa/nvidia_fs-linux-sbsa-2.20.5-archive.tar.xz") +set(cuda_gdb_HASH "0a18f6e4469cf34fad384ceed8433eca4bff1731cf7bf3856b91839cba3f1106cec8f1fb580e941a7adbced7e481035e704b7626653aa0a8fc0777763ad4e33a") +set(cuda_gdb_URL "cuda_gdb/linux-sbsa/cuda_gdb-linux-sbsa-12.5.39-archive.tar.xz") +set(cuda_cuobjdump_HASH "22668a0196b68af86659be1d2f230dc9f67dff26b07550bbdff3e42e1b2cf04bac017507f8094f5f438f4fd1eb4866d052e0c359877b2f527d86ca56c2514186") +set(cuda_cuobjdump_URL "cuda_cuobjdump/linux-sbsa/cuda_cuobjdump-linux-sbsa-12.5.39-archive.tar.xz") +set(cuda_cupti_HASH "250e68c45cdb7dba19927bf6914c8c5b558d3e052acec8aae2851b619b74fcc07e15c63df98d5b8207d32c876b1bb45a81d09658f165d57d8c9e11922c0e0f90") +set(cuda_cupti_URL "cuda_cupti/linux-sbsa/cuda_cupti-linux-sbsa-12.5.39-archive.tar.xz") +set(cuda_cuxxfilt_HASH "23e93ce626527e89ae6ab2248d43fec14e019b9e819598dd5bd6380673aa0498b352af79d619397d9e16d42752922d8e21a38d66999dea62603b39f9a79c385a") +set(cuda_cuxxfilt_URL "cuda_cuxxfilt/linux-sbsa/cuda_cuxxfilt-linux-sbsa-12.5.39-archive.tar.xz") +set(cuda_nvcc_HASH "508f920858c89070c03ae1363ff16ef05f738464098844c4bf1f3a8af527952886a150619fae5c6533080a4f921b6ac0e9b9b8d1fe271e7eb1e856ad1b52c49d") +set(cuda_nvcc_URL "cuda_nvcc/linux-sbsa/cuda_nvcc-linux-sbsa-12.5.40-archive.tar.xz") +set(cuda_nvdisasm_HASH "4cb91263fbad064f9683ac88f95fc058b69dd4bd1a1275f20d26b7069a82ca81675e54872e8b211ba45e78d019fff8e40d91888f3ca080a61adf1f32e13d2926") +set(cuda_nvdisasm_URL "cuda_nvdisasm/linux-sbsa/cuda_nvdisasm-linux-sbsa-12.5.39-archive.tar.xz") + diff --git a/ports/cuda/hash-linux-x86_64.cmake b/ports/cuda/hash-linux-x86_64.cmake new file mode 100644 index 00000000000000..a4ee4635198c82 --- /dev/null +++ b/ports/cuda/hash-linux-x86_64.cmake @@ -0,0 +1,51 @@ +set(cuda_cccl_HASH "e92d6fb3dc81699850db8f1be963359b9339e76ab12037df9ca6f98edf6b11477b2abf71644502be6d39fac4be34090c0178da4970bdf2c734e7e5fccc0a399b") +set(cuda_cccl_URL "cuda_cccl/linux-x86_64/cuda_cccl-linux-x86_64-12.5.39-archive.tar.xz") +set(cuda_cudart_HASH "e225ff867ceb0eea96456862977afdda174e0215ccfc94b65b14b6a935ea607162d21271954e5c6243da698d22918d32b8fb7ea46149c76160a08ca5809494e2") +set(cuda_cudart_URL "cuda_cudart/linux-x86_64/cuda_cudart-linux-x86_64-12.5.39-archive.tar.xz") +set(cuda_nvtx_HASH "dac24168fdc4b7541b944d322afc8b25d64d942b719ab4e0cbd4d1f44b386ccf189c901770d1bb96fb676bfd93c4eec435eccc06ae82496816c8af891a7480a2") +set(cuda_nvtx_URL "cuda_nvtx/linux-x86_64/cuda_nvtx-linux-x86_64-12.5.39-archive.tar.xz") +set(cuda_nvml_dev_HASH "cd7c87beada066d80160249d51fb71a2b12c3b641b85c81653a42549330bd3663fcfcdd5fe3748b5599107fb33233fd43bb9114ad4138ff5702796289a9214e7") +set(cuda_nvml_dev_URL "cuda_nvml_dev/linux-x86_64/cuda_nvml_dev-linux-x86_64-12.5.39-archive.tar.xz") +set(cuda_nvrtc_HASH "31071f8eac3138ae7a3dc19bcaab92b80469849de46b66b812efa04264d02e19ef74a6291e7c34bcbd2860b04e22300ef0e2cbb055ad11264c543dd06c9f4f4e") +set(cuda_nvrtc_URL "cuda_nvrtc/linux-x86_64/cuda_nvrtc-linux-x86_64-12.5.40-archive.tar.xz") +set(cuda_profiler_api_HASH "86c8179b80b18a64768ea31ee66896de113d7366a05ef2dc5afda548dab719921dfe1bbc3df63c142cd842f9ffd5aec0941aeddc3865a1ef723d37920d9cf0d3") +set(cuda_profiler_api_URL "cuda_profiler_api/linux-x86_64/cuda_profiler_api-linux-x86_64-12.5.39-archive.tar.xz") +set(libcublas_HASH "0f9ac1ced74d82727024949f6bc96c9a48e44b6fb71ef827357f11bf7c4a7b8d9c79a76f4badd2be455a17343a075469307670750dbf3c1c5c85bdaecd5ea086") +set(libcublas_URL "libcublas/linux-x86_64/libcublas-linux-x86_64-12.5.2.13-archive.tar.xz") +set(libcufft_HASH "9113c0daab687ae6cd99992895bdbb8c5eb368a3b5f7b361f1af71ebea9eaafd36b517a886e24b600a464e83bd76b7bc54b42da8a662382e5291dcd01d970b23") +set(libcufft_URL "libcufft/linux-x86_64/libcufft-linux-x86_64-11.2.3.18-archive.tar.xz") +set(libcurand_HASH "70f14d86a4151a312b665477eceea4074ae57f21bb37b420cb6cc95b8d3dd0ceef6334d1002e8b7cd74eb2331cb628246be280bd0e1f10b9a5bf64b3688694d2") +set(libcurand_URL "libcurand/linux-x86_64/libcurand-linux-x86_64-10.3.6.39-archive.tar.xz") +set(libcusolver_HASH "79d01c0f96db00e967c4e106d951534e73c3d62a00aa6379fd1be18b90ccf54abc63c0e4f70948b671753d8206cb332eb4387f71ff4f978570f6a43747fede4e") +set(libcusolver_URL "libcusolver/linux-x86_64/libcusolver-linux-x86_64-11.6.2.40-archive.tar.xz") +set(libcusparse_HASH "5b3f003e9db923fe3165803b6039bb2f32bb450eb87ea6798ec2e2daf68bc6b35d79275c0208f440922058d7fdc873e5718a8160fd80132c33e085901cfd030f") +set(libcusparse_URL "libcusparse/linux-x86_64/libcusparse-linux-x86_64-12.4.1.24-archive.tar.xz") +set(libnpp_HASH "eb427ebd917b9d4b959d4f32a95d653670e3b07a8a85e2363eed83fefe187e044f69f7169d26ed3d2fdeeb0e68d87903cd7367ddf3414db337bc107b221e25a6") +set(libnpp_URL "libnpp/linux-x86_64/libnpp-linux-x86_64-12.3.0.116-archive.tar.xz") +set(libnvjitlink_HASH "fb58a1bce1a5486f71b0504887d0cc4c242bf539f2e5cdfcefd22369fd040d238d9bed457a32493456773e6359be60e8d94448df1e6afd8d688d1739278c5c22") +set(libnvjitlink_URL "libnvjitlink/linux-x86_64/libnvjitlink-linux-x86_64-12.5.40-archive.tar.xz") +set(libnvjpeg_HASH "2b52fb86996010b40843ad1aa3b65f4f4d50f3c20cff5bb5b4d1d729f842d227124c687fe00c73a2ad371057a495a5df53d73cc1b5164fb7903fdf61129ed8ab") +set(libnvjpeg_URL "libnvjpeg/linux-x86_64/libnvjpeg-linux-x86_64-12.3.2.38-archive.tar.xz") +set(fabricmanager_HASH "af8432458730273f9bdbf085f1817cd1db4dc7516de1a30c0aa77197fbc678e2e6a8da38a6a3a8a01145fd548f42e93cac29c390dbcf41c4f318e5f94ddf7461") +set(fabricmanager_URL "fabricmanager/linux-x86_64/fabricmanager-linux-x86_64-555.42.02-archive.tar.xz") +set(libnvidia_nscq_HASH "70444fc2130440b5f6ac5b1c46bcc3d9c01b4a948e8141eb2c6af3abf0e48724cc5feec5bc5a51aa8a9be839558b87600c9c2be84e8d2515df20ec36186fa11d") +set(libnvidia_nscq_URL "libnvidia_nscq/linux-x86_64/libnvidia_nscq-linux-x86_64-555.42.02-archive.tar.xz") +set(libcufile_HASH "45158e5a20560f4f7660a05d9bb8394933612d8fd8131a5ae0dd7086d024ea632e0cb5ae883ccc5b7eafbcd28da5c033c9118b71856c0d6db68d76fe9d0799b6") +set(libcufile_URL "libcufile/linux-x86_64/libcufile-linux-x86_64-1.10.0.4-archive.tar.xz") +set(nvidia_fs_HASH "bc21d4d6de7c2deb8f2bdd5441f1d0e0a4731c3030b9e5a5243996805b02c9c394818d9ab91f234a4c1bdda1a6e74e5212db61feaea15a08dafad0fd8e950d41") +set(nvidia_fs_URL "nvidia_fs/linux-x86_64/nvidia_fs-linux-x86_64-2.20.5-archive.tar.xz") +set(cuda_gdb_HASH "a827b17846a524643596983c904fffe2dd6d23023f0a9b6c87e1ba6ab15d10b970227ec36323645b64c819963bf1eee52636b0ecf6de2a47d69f157ccd4ed969") +set(cuda_gdb_URL "cuda_gdb/linux-x86_64/cuda_gdb-linux-x86_64-12.5.39-archive.tar.xz") +set(cuda_cuobjdump_HASH "a600a9eb2a2f1fa0ee02d28506f76b9556dfb9320c8155094e67ca25303665b81688eff4ce1172ce4b2db7154a91edb0802447feb18e53b233fb25767fe26443") +set(cuda_cuobjdump_URL "cuda_cuobjdump/linux-x86_64/cuda_cuobjdump-linux-x86_64-12.5.39-archive.tar.xz") +set(cuda_cupti_HASH "a292fa593b77e278efd3f9e15f25f8cf80d7fd5c20c9403608f5f2de57886434f3dec4b546203a51543a5c8ceb0c0554e5486609a1dfcde4d9ef5544ed0f3521") +set(cuda_cupti_URL "cuda_cupti/linux-x86_64/cuda_cupti-linux-x86_64-12.5.39-archive.tar.xz") +set(cuda_cuxxfilt_HASH "378e3c4ef1b93134a2091ac69662d93b39012001f2cf3097bfed5c57dbb0e94b560aaf2f6dde24c92bc3d75632e1de5a7ebe16e3ca48bd6392cedd7c31585c48") +set(cuda_cuxxfilt_URL "cuda_cuxxfilt/linux-x86_64/cuda_cuxxfilt-linux-x86_64-12.5.39-archive.tar.xz") +set(cuda_nvcc_HASH "f3542882b3b6d644a376d2ea983a7ace2aa064e97d001167a94bc42330fe455a67b9f62ded6a3b90504e6415baf0a8739bfbaa1125a1c83c4f96284676b2cbc6") +set(cuda_nvcc_URL "cuda_nvcc/linux-x86_64/cuda_nvcc-linux-x86_64-12.5.40-archive.tar.xz") +set(cuda_nvdisasm_HASH "7b8fba192dc54b858af6c918b8c9833e8f640ed32f51215fe749da4f2120fba89e9e2bbaff4e6cccc566ca59f9d2594b489c4238b1442f8f92342f75adfaf6ea") +set(cuda_nvdisasm_URL "cuda_nvdisasm/linux-x86_64/cuda_nvdisasm-linux-x86_64-12.5.39-archive.tar.xz") +set(cuda_nvprof_HASH "5f6bf518f2349a8bbb2fbcdf655808a089a332fceb46b65cb6ba266b77e2d038851d5ecc953be0c5f98067a3745cbad68c75f2484fe660947af763d2222889a0") +set(cuda_nvprof_URL "cuda_nvprof/linux-x86_64/cuda_nvprof-linux-x86_64-12.5.39-archive.tar.xz") + diff --git a/ports/cuda/hash-windows-x86_64.cmake b/ports/cuda/hash-windows-x86_64.cmake new file mode 100644 index 00000000000000..22a0bbb678f393 --- /dev/null +++ b/ports/cuda/hash-windows-x86_64.cmake @@ -0,0 +1,41 @@ +set(cuda_cccl_HASH "084199c3db13e6881ad9f14fb85e9ef30fa3ddfa1aa73d46b31f4c93d45ef5fa82a107593f85908291d4ede6d8ecb6c0443acde7b5aec37f6d7686720e326bcf") +set(cuda_cccl_URL "cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-12.5.39-archive.zip") +set(cuda_cudart_HASH "507fe4b5c6894a879741ebb3291c0fbe395580d896d6057c236a5c3d485576e253c19c6ef61666c2a92ee949c2f6d470625ac3476acb9cb7a76c4c4c912f846e") +set(cuda_cudart_URL "cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-12.5.39-archive.zip") +set(cuda_nvtx_HASH "ff4f9bead300ab7fe601e8d215831518dea40776de1a4b171c8da7510d3246e03167cc717f3d44c09901c8be540813db65f9d2cbd8babafae233436b76b1aa43") +set(cuda_nvtx_URL "cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-12.5.39-archive.zip") +set(cuda_nvml_dev_HASH "bc9a8257a14c579b186eeb72dc165995cce1738679001d99508bb31b0f4651827f7590c8d8bd9875af3d9d0732487b30e8edaf7fb03e9e5f35473034e3b6e581") +set(cuda_nvml_dev_URL "cuda_nvml_dev/windows-x86_64/cuda_nvml_dev-windows-x86_64-12.5.39-archive.zip") +set(cuda_nvrtc_HASH "bc9e3b38724690538c013bc8579a5e6fa9a1c0d3169eb25ac79549b145f1ead49fcda350f1513bba61df6f85d560791aac32981bce7b4bdc1ac9c6fafb17a41e") +set(cuda_nvrtc_URL "cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-12.5.40-archive.zip") +set(cuda_profiler_api_HASH "79735f962a548136e1280d3c5085ede2aeb790d8fddf88d0a12ff6e40b90b94d11de33ad7dfbbde0fe4b4b56322e6b25b766eb8946e4ce9d8eda91c3644ac261") +set(cuda_profiler_api_URL "cuda_profiler_api/windows-x86_64/cuda_profiler_api-windows-x86_64-12.5.39-archive.zip") +set(libcublas_HASH "ec74495abed9b2feb5c0875ef0a35093cb71497b617069fc532215db820337285ea1063497ccbeb8e5cb321f08b39897cb802f88427a88082fc71ae47d47e26a") +set(libcublas_URL "libcublas/windows-x86_64/libcublas-windows-x86_64-12.5.2.13-archive.zip") +set(libcufft_HASH "540a929b0e22719e8b048277a2ecbf4ff9276de97fc47898c4fbff8d0f558eb4e1dc9550c63e311814f9b9b048ded834ac2b2bf99155707a70fe5e0910e9432c") +set(libcufft_URL "libcufft/windows-x86_64/libcufft-windows-x86_64-11.2.3.18-archive.zip") +set(libcurand_HASH "d4dfe856ba974e65aaa23991df701cdd81ebce070871b445a49452e26b6ef1ff92b087f82fe3ba34931030a6368d53c5e3f3a08efb2ae62afa2c883473fea54b") +set(libcurand_URL "libcurand/windows-x86_64/libcurand-windows-x86_64-10.3.6.39-archive.zip") +set(libcusolver_HASH "27530293fca633a078078531e301b2b780c1ea81dd2daaecc79812c408a75f98e525ab71f2927c82f21d7b256a14bcd25f8c80fdf4c908c045d6060649615578") +set(libcusolver_URL "libcusolver/windows-x86_64/libcusolver-windows-x86_64-11.6.2.40-archive.zip") +set(libcusparse_HASH "cfb2451a02813d97573c16c25ed02846238131b793648ccb2af89a9c583c9a958580c05cf0e16ee10462382045cce65e6d373def06e6c4181ae886e6e720fe6e") +set(libcusparse_URL "libcusparse/windows-x86_64/libcusparse-windows-x86_64-12.4.1.24-archive.zip") +set(libnpp_HASH "352ff77f04333901b67a4e6ea841df173dc7127249d18a7181aefb50f6b4575655922d4606ffc701fd12fe804d01df2ba6235f5ce09b684e512ace95aa7863c9") +set(libnpp_URL "libnpp/windows-x86_64/libnpp-windows-x86_64-12.3.0.116-archive.zip") +set(libnvjitlink_HASH "0a16a9d0d8a1d5a1039afb225d7d5d1f34de826eb775e893c5289388eea41e7b31edda34eb66cca05f1a9d7e194be33c3cd49b574c8e3387e4269745113d14bc") +set(libnvjitlink_URL "libnvjitlink/windows-x86_64/libnvjitlink-windows-x86_64-12.5.40-archive.zip") +set(libnvjpeg_HASH "e936232195712bf944d176056638089a02a0a3675850df7120d9769bbdead8d5c07cc55b2d8357e0e249e69205d2a0cdeab29ecda3aa06521808ff91fcd6e031") +set(libnvjpeg_URL "libnvjpeg/windows-x86_64/libnvjpeg-windows-x86_64-12.3.2.38-archive.zip") +set(cuda_cuobjdump_HASH "c902c158154b395b43e962f16f07dfc8d3f2df6bdf5a5b25e2432c8137a0a11584953457fa060ced8fa2411270e7b2e5580a0e512743de13045ea182927b1ae5") +set(cuda_cuobjdump_URL "cuda_cuobjdump/windows-x86_64/cuda_cuobjdump-windows-x86_64-12.5.39-archive.zip") +set(cuda_cupti_HASH "4f897477727d0ad9a71c6728854fbd8fa447693adaad15959ab7fb2f2c09a024f0b2696bc3474ca8228dac554a30249104cf1dad6ac9eafa2213f1fc3c2ad2d7") +set(cuda_cupti_URL "cuda_cupti/windows-x86_64/cuda_cupti-windows-x86_64-12.5.39-archive.zip") +set(cuda_cuxxfilt_HASH "d11350e97ebfb2ffb10121953234d9eee652c3686cb98ed239572ff2b82db279a7750365adf87dfbbc37219e3c195d0a20446020a85e61532958de18588eb1a2") +set(cuda_cuxxfilt_URL "cuda_cuxxfilt/windows-x86_64/cuda_cuxxfilt-windows-x86_64-12.5.39-archive.zip") +set(cuda_nvcc_HASH "a971dfde49cd96bbdea056aa400db29676675f098a87d2b58e8d42a6b072608a3c05c6699051bb8cbbfff20b9a5eb22bfbb8a4187398f351ec6bf0092547e30d") +set(cuda_nvcc_URL "cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-12.5.40-archive.zip") +set(cuda_nvdisasm_HASH "cfdedccd09e0cdcf437a87ba3e3601fe3b4753e423037a3ab8a4cb14a8a1afd2d4fd1bebdb9d3562725281c2ca50b28a0c0a541d2b817e3ba5c85a3439c9f202") +set(cuda_nvdisasm_URL "cuda_nvdisasm/windows-x86_64/cuda_nvdisasm-windows-x86_64-12.5.39-archive.zip") +set(cuda_nvprof_HASH "1a7a482c193aee3af78b399104e0ef1e1514213f1cbe317645708fba256e88dec207f1cbb67537cd9ea7187810be041ccf11a3ec914f25f33789ad6bb4648849") +set(cuda_nvprof_URL "cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-12.5.39-archive.zip") + diff --git a/ports/cuda/portfile.cmake b/ports/cuda/portfile.cmake index b5ea25636feb3c..9aeed2e0664cc7 100644 --- a/ports/cuda/portfile.cmake +++ b/ports/cuda/portfile.cmake @@ -1,15 +1,276 @@ -# This package doesn't install CUDA. It instead verifies that CUDA is installed. -# Other packages can depend on this package to declare a dependency on CUDA. -# If this package is installed, we assume that CUDA is properly installed. - -#note: this port must be kept in sync with CUDNN and NCCL ports: every time one is upgraded, the other must be too - -include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_find_cuda.cmake") - -vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT CUDA_TOOLKIT_ROOT) - -file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg_find_cuda.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(INSTALL "${VCPKG_ROOT_DIR}/LICENSE.txt" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) - -set(VCPKG_POLICY_CMAKE_HELPER_PORT enabled) +set(base_url "https://developer.download.nvidia.com/compute/cuda/redist") + +if(VCPKG_TARGET_IS_WINDOWS) + set(VCPKG_CRT_LINKAGE "static") +endif() + +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(target x86_64) +elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" AND VCPKG_TARGET_IS_LINUX) + set(target sbsa) +else() + message(FATAL_ERROR "Unsupported architecture") +endif() + +if(VCPKG_TARGET_IS_WINDOWS) + set(platform windows) +else() + set(platform linux) +endif() + +set(components + cccl # < contains cmake files + cudart + nvtx + nvml_dev + nvrtc + #opencl # OpenCL port should probably own this. + profiler_api + #sanitizer_api +) + +set(libs + libcublas + libcufft + libcurand + libcusolver + libcusparse + libnpp + libnvjitlink + libnvjpeg +) + +set(util + #nsight_compute + #nsight_systems +) + +set(tools + cuobjdump + cupti + cuxxfilt # has some extra API + nvcc + nvdisasm + nvprof + #nvprune + #nvvp +) + +if(VCPKG_TARGET_IS_WINDOWS) + #list(APPEND util + #nsight_vse + #) +endif() + +if(VCPKG_TARGET_IS_LINUX) + list(APPEND libs + fabricmanager + libnvidia_nscq + #nvidia_driver + libcufile + ) + list(APPEND util + nvidia_fs + ) + list(APPEND util + cuda_gdb + ) +endif() + +if(target STREQUAL "sbsa") + list(REMOVE_ITEM components "opencl") + list(REMOVE_ITEM tools "nvprof" "nvvp") +endif() + +list(TRANSFORM components PREPEND "cuda_") +list(TRANSFORM tools PREPEND "cuda_") + +set(update_opt "") +#set(cuda_updating 1) +if(cuda_updating) + set(VCPKG_USE_HEAD_VERSION 1) + set(update_opt SKIP_SHA512) + message(STATUS "Running ${PORT} in update mode!") +else() + include("${CURRENT_PORT_DIR}/hash-${platform}-${target}.cmake") +endif() + +if(cuda_updating) + vcpkg_download_distfile( + cuda_redist_json + URLS ${base_url}/redistrib_${VERSION}.json + FILENAME cuda-${VERSION}.json + SHA512 ${cuda-json_HASH} + ${update_opt} + ) + file(READ "${cuda_redist_json}" cuda_json) +endif() + +file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/cuda") + +set(licenses "") +set(dirs_to_remove "") +foreach(comp IN LISTS components libs util tools) + message(STATUS "Downloading: ${comp}") + + if(cuda_updating) + string(JSON comp_json GET "${cuda_json}" "${comp}") + string(JSON comp_plat_json GET "${comp_json}" "${platform}-${target}") + string(JSON comp_plat_rel_url GET "${comp_plat_json}" "relative_path") + set(${comp}_URL "${comp_plat_rel_url}") + endif() + + cmake_path(GET ${comp}_URL FILENAME comp_filename) + + vcpkg_download_distfile( + ${comp} + URLS "${base_url}/${${comp}_URL}" + FILENAME ${comp_filename} + SHA512 ${${comp}_HASH} + ${update_opt} + ) + + if(cuda_updating) + file(SHA512 "${${comp}}" hash) + string(APPEND update_hash "set(${comp}_HASH \"${hash}\")\n") + string(APPEND update_hash "set(${comp}_URL \"${comp_plat_rel_url}\")\n") + continue() + endif() + + vcpkg_extract_source_archive( + comp-src + ARCHIVE ${${comp}} + SOURCE_BASE "${comp}" + WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools" + ) + + # The following code copies the extracted archives verbatim to tools/cuda. + # The layout should match what CUDA normally installs minus stuff irrelevant + # for vcpkg (examples/docs etc.). The layout needs to match due to implicit + # search dirs of nvcc expecting stuff to in a defined layout. + + if("${comp}" IN_LIST components OR "${comp}" IN_LIST libs) + # Also copy lb/dll/so files into lib/bin + file(COPY "${comp-src}/" DESTINATION "${CURRENT_PACKAGES_DIR}" + PATTERN "/bin/*.dll" + PATTERN "/lib/*.lib" + PATTERN "/lib/*.a" + PATTERN "/lib/*.so" + PATTERN "*docs*" EXCLUDE + PATTERN "*doc*" EXCLUDE + PATTERN "*samples*" EXCLUDE + PATTERN "*example*" EXCLUDE + PATTERN "src/*" EXCLUDE + PATTERN "LICENSE" EXCLUDE + PATTERN "kernel" EXCLUDE + PATTERN "kernel-open" EXCLUDE + PATTERN "lib32" EXCLUDE + PATTERN "man" EXCLUDE + PATTERN "sbin" EXCLUDE + PATTERN "systemd" EXCLUDE + PATTERN "tests" EXCLUDE + PATTERN "wine" EXCLUDE + PATTERN "firmware" EXCLUDE + PATTERN "include" EXCLUDE + PATTERN "share" EXCLUDE + ) + # Need a duplicate since nvcc won't magically add new unknown search paths for stuff + file(COPY "${comp-src}/" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/cuda" + PATTERN "*docs*" EXCLUDE + PATTERN "*doc*" EXCLUDE + PATTERN "*samples*" EXCLUDE + PATTERN "*example*" EXCLUDE + PATTERN "LICENSE" EXCLUDE + PATTERN "tests" EXCLUDE + PATTERN "wine" EXCLUDE + ) + else() + file(COPY "${comp-src}/" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/cuda" + PATTERN "*docs*" EXCLUDE + PATTERN "*doc*" EXCLUDE + PATTERN "*samples*" EXCLUDE + PATTERN "*exsample*" EXCLUDE + PATTERN "LICENSE" EXCLUDE + ) + endif() + file(GLOB_RECURSE com_lic_file "${comp-src}/*LICENSE") + list(APPEND licenses "${com_lic_file}") + list(APPEND dirs_to_remove "${comp-src}") +endforeach() + +if(cuda_updating) + file(WRITE "${CURRENT_PORT_DIR}/new_hash-${platform}-${target}.cmake" "${update_hash}\n") + message(FATAL_ERROR "New hashes obtained!") +endif() + +file(COPY "${CURRENT_PACKAGES_DIR}/tools/cuda/lib/cmake/" DESTINATION "${CURRENT_PACKAGES_DIR}/share/" + PATTERN "/share/cub/" EXCLUDE +) + +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/thrust/thrust-header-search.cmake" "from_install_prefix}" "from_install_prefix}/tools/cuda/") + +vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/libcudacxx/libcudacxx-header-search.cmake" "../../../" "../../tools/cuda") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/cmake/") + +if(VCPKG_TARGET_IS_WINDOWS) + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/Win32") + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/x64/" "${CURRENT_PACKAGES_DIR}/lib-tmp/") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") + file(RENAME "${CURRENT_PACKAGES_DIR}/lib-tmp" "${CURRENT_PACKAGES_DIR}/lib") +elseif(VCPKG_TARGET_IS_LINUX) + # Don't really know why this renaming is required. + file(RENAME "${CURRENT_PACKAGES_DIR}/tools/cuda/lib" "${CURRENT_PACKAGES_DIR}/tools/cuda/lib64") +endif() + +if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/cuda/pkg-config") + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib") + file(RENAME "${CURRENT_PACKAGES_DIR}/pkg-config" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/cuda/pkg-config") + file(GLOB pc_files "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/*.pc") + foreach(pc_file IN LISTS pc_files) + file(READ "${pc_file}" contents) + string(REGEX REPLACE "cudaroot=[^\n]+" "cudaroot=\${prefix}/tools/cuda" contents "${contents}") + #string(REGEX REPLACE "/targets/x86_64-linux" "" contents "${contents}") + file(WRITE "${pc_file}" "${contents}") + endforeach() +endif() + +if(NOT VCPKG_BUILD_TYPE) + file(COPY "${CURRENT_PACKAGES_DIR}/bin/" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") + file(COPY "${CURRENT_PACKAGES_DIR}/lib/" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") +endif() + +vcpkg_install_copyright(FILE_LIST ${licenses}) + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/src" + "${CURRENT_PACKAGES_DIR}/nvml" + "${CURRENT_PACKAGES_DIR}/tools/cuda/nvml" + "${CURRENT_PACKAGES_DIR}/share/cub" + "${CURRENT_PACKAGES_DIR}/tools/cuda/extras/Debugger/lib64" +) + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/include" + "${CURRENT_PACKAGES_DIR}/tools/cuda/include/cub/cmake" + "${CURRENT_PACKAGES_DIR}/tools/cuda/include/thrust/cmake" + "${CURRENT_PACKAGES_DIR}/MANIFEST" + "${CURRENT_PACKAGES_DIR}/third-party-notices.txt" + "${CURRENT_PACKAGES_DIR}/README" + "${CURRENT_PACKAGES_DIR}/LICENSE" + "${CURRENT_PACKAGES_DIR}/CHANGELOG" + ${dirs_to_remove} +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/cudatoolkit/vcpkg-cmake-wrapper.cmake" @ONLY) +configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg_find_cuda.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg_find_cuda.cmake" @ONLY) + +vcpkg_fixup_pkgconfig() + +set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) +set(VCPKG_POLICY_SKIP_ARCHITECTURE_CHECK enabled) +set(VCPKG_POLICY_ONLY_RELEASE_CRT enabled) + +set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) # includes are located in a subfolder of tools/cuda diff --git a/ports/cuda/vcpkg-cmake-wrapper.cmake b/ports/cuda/vcpkg-cmake-wrapper.cmake new file mode 100644 index 00000000000000..01f1229080bd6c --- /dev/null +++ b/ports/cuda/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,7 @@ +set(CUDA_TOOLKIT_ROOT_DIR "${CMAKE_CURRENT_LIST_DIR}/../../tools/cuda" CACHE "FILEPATH" "" FORCE) +set(CUDAToolkit_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../tools/cuda") +set(ENV{CUDA_PATH} "${CMAKE_CURRENT_LIST_DIR}/../../tools/cuda") + +#Presearch cudart since it controls further lookup and does not take ENV CUDA_PATH as an input hint in older versions of CMake +find_library(CUDA_cudart_LIBRARY NAMES cudart HINTS "${CMAKE_CURRENT_LIST_DIR}/../../tools/cuda" ENV CUDA_PATH PATH_SUFFIXES lib64 lib/x64 lib) +_find_package(${ARGS}) diff --git a/ports/cuda/vcpkg-port-config.cmake b/ports/cuda/vcpkg-port-config.cmake index c8b23036855952..f84cde8966acf6 100644 --- a/ports/cuda/vcpkg-port-config.cmake +++ b/ports/cuda/vcpkg-port-config.cmake @@ -1 +1,4 @@ include("${CMAKE_CURRENT_LIST_DIR}/vcpkg_find_cuda.cmake") + +set(ENV{CUDA_PATH} "${CURRENT_INSTALLED_DIR}/tools/cuda") +vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/tools/cuda/bin") \ No newline at end of file diff --git a/ports/cuda/vcpkg.json b/ports/cuda/vcpkg.json index 969232998ca05e..2a6b8aa718ee0b 100644 --- a/ports/cuda/vcpkg.json +++ b/ports/cuda/vcpkg.json @@ -1,9 +1,14 @@ { "name": "cuda", - "version": "10.1", - "port-version": 13, - "description": "A parallel computing platform and programming model", + "version": "12.5.0", + "description": "The NVIDIA CUDA Toolkit provides a development environment for creating high performance GPU-accelerated applications. With the CUDA Toolkit, you can develop, optimize, and deploy your applications on GPU-accelerated embedded systems, desktop workstations, enterprise data centers, cloud-based platforms and HPC supercomputers. The toolkit includes GPU-accelerated libraries, debugging and optimization tools, a C/C++ compiler, and a runtime library to deploy your application.", "homepage": "https://developer.nvidia.com/cuda-toolkit", "license": null, - "supports": "(windows & x64 & !uwp & !xbox) | (linux & x64) | (linux & arm64)" + "supports": "(windows & x64 & !uwp & !xbox) | (linux & x64) | (linux & arm64)", + "dependencies": [ + { + "name": "cuda", + "host": true + } + ] } diff --git a/ports/cuda/vcpkg_find_cuda.cmake b/ports/cuda/vcpkg_find_cuda.cmake index a6265b78b7192a..036d5def678167 100644 --- a/ports/cuda/vcpkg_find_cuda.cmake +++ b/ports/cuda/vcpkg_find_cuda.cmake @@ -2,58 +2,27 @@ function(vcpkg_find_cuda) cmake_parse_arguments(PARSE_ARGV 0 vfc "" "OUT_CUDA_TOOLKIT_ROOT;OUT_CUDA_VERSION" "") if(NOT vfc_OUT_CUDA_TOOLKIT_ROOT) - message(FATAL_ERROR "vcpkg_find_cuda() requres an OUT_CUDA_TOOLKIT_ROOT argument") + message(FATAL_ERROR "vcpkg_find_cuda() requires an OUT_CUDA_TOOLKIT_ROOT argument") endif() - set(CUDA_REQUIRED_VERSION "10.1.0") + set(CUDA_REQUIRED_VERSION "11.0.0") set(CUDA_PATHS + ${CURRENT_INSTALLED_DIR}/tools/cuda ENV CUDA_PATH ENV CUDA_HOME ENV CUDA_BIN_PATH ENV CUDA_TOOLKIT_ROOT_DIR) - if (VCPKG_TARGET_IS_WINDOWS) - find_program(NVCC - NAMES nvcc.exe - PATHS - ${CUDA_PATHS} - PATH_SUFFIXES bin bin64 - DOC "Toolkit location." - NO_DEFAULT_PATH - ) - else() - if (VCPKG_TARGET_IS_LINUX) - set(platform_base "/usr/local/cuda-") - else() - set(platform_base "/Developer/NVIDIA/CUDA-") - endif() - file(GLOB possible_paths "${platform_base}*") - set(FOUND_PATH ) - foreach (p ${possible_paths}) - # Extract version number from end of string - string(REGEX MATCH "[0-9][0-9]?\\.[0-9]$" p_version ${p}) - if (IS_DIRECTORY ${p} AND p_version) - if (p_version VERSION_GREATER_EQUAL CUDA_REQUIRED_VERSION) - set(FOUND_PATH ${p}) - break() - endif() - endif() - endforeach() - - vcpkg_list(APPEND CUDA_PATHS /usr/bin) - - find_program(NVCC - NAMES nvcc - PATHS - ${CUDA_PATHS} - PATHS ${FOUND_PATH} - PATH_SUFFIXES bin bin64 - DOC "Toolkit location." - NO_DEFAULT_PATH - ) - endif() + find_program(NVCC + NAMES nvcc${VCPKG_HOST_EXECUTABLE_SUFFIX} + PATHS + ${CUDA_PATHS} + PATH_SUFFIXES bin bin64 + DOC "Toolkit location." + NO_DEFAULT_PATH + ) set(error_code 1) if (NVCC) diff --git a/ports/cudnn/FindCUDNN.cmake b/ports/cudnn/FindCUDNN.cmake index 3f5d649cf25b14..09ff9a48e52cb9 100644 --- a/ports/cudnn/FindCUDNN.cmake +++ b/ports/cudnn/FindCUDNN.cmake @@ -24,11 +24,11 @@ include(FindPackageHandleStandardArgs) find_path(CUDNN_INCLUDE_DIR NAMES cudnn.h cudnn_v8.h cudnn_v7.h - HINTS ${CUDA_TOOLKIT_ROOT} $ENV{CUDA_PATH} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN} $ENV{CUDNN_ROOT_DIR} $ENV{CUDA_PATH}/../../../NVIDIA/CUDNN/v9.0 $ENV{CUDA_PATH}/../../../NVIDIA/CUDNN/v9.1 /usr/include /usr/include/x86_64-linux-gnu/ /usr/include/aarch64-linux-gnu/ - PATH_SUFFIXES cuda/include include include/12.4 include/12.3 include/11.8) + PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" + PATH_SUFFIXES include ) find_library(CUDNN_LIBRARY NAMES cudnn cudnn8 cudnn7 - HINTS ${CUDA_TOOLKIT_ROOT} $ENV{CUDA_PATH} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN} $ENV{CUDNN_ROOT_DIR} $ENV{CUDA_PATH}/../../../NVIDIA/CUDNN/v9.0 $ENV{CUDA_PATH}/../../../NVIDIA/CUDNN/v9.1 /usr/lib/x86_64-linux-gnu/ /usr/include/aarch64-linux-gnu/ /usr/ - PATH_SUFFIXES lib lib64 cuda/lib cuda/lib64 lib/x64 cuda/lib/x64 lib/12.4/x64 lib/12.3/x64 lib/11.8/x64) + PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" + PATH_SUFFIXES lib ) if(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn.h") file(READ ${CUDNN_INCLUDE_DIR}/cudnn.h CUDNN_HEADER_CONTENTS) diff --git a/ports/cudnn/portfile.cmake b/ports/cudnn/portfile.cmake index 87a8ab105a073a..cf15a96ab7853e 100644 --- a/ports/cudnn/portfile.cmake +++ b/ports/cudnn/portfile.cmake @@ -1,65 +1,63 @@ -set(MINIMUM_CUDNN_VERSION "7.6.5") - -vcpkg_find_cuda(OUT_CUDA_TOOLKIT_ROOT CUDA_TOOLKIT_ROOT OUT_CUDA_VERSION CUDA_VERSION) - -# Try to find CUDNN if it exists; only download if it doesn't exist -find_path(CUDNN_INCLUDE_DIR NAMES cudnn.h cudnn_v8.h cudnn_v7.h - HINTS ${CUDA_TOOLKIT_ROOT} $ENV{CUDA_PATH} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN} $ENV{CUDNN_ROOT_DIR} $ENV{CUDA_PATH}/../../../NVIDIA/CUDNN/v9.0 $ENV{CUDA_PATH}/../../../NVIDIA/CUDNN/v9.1 /usr/include /usr/include/x86_64-linux-gnu/ /usr/include/aarch64-linux-gnu/ - PATH_SUFFIXES cuda/include include include/12.4 include/12.3 include/11.8) -message(STATUS "CUDNN_INCLUDE_DIR: ${CUDNN_INCLUDE_DIR}") -find_library(CUDNN_LIBRARY NAMES cudnn cudnn8 cudnn7 - HINTS ${CUDA_TOOLKIT_ROOT} $ENV{CUDA_PATH} $ENV{CUDA_TOOLKIT_ROOT_DIR} $ENV{cudnn} $ENV{CUDNN} $ENV{CUDNN_ROOT_DIR} $ENV{CUDA_PATH}/../../../NVIDIA/CUDNN/v9.0 $ENV{CUDA_PATH}/../../../NVIDIA/CUDNN/v9.1 /usr/lib/x86_64-linux-gnu/ /usr/include/aarch64-linux-gnu/ /usr/ - PATH_SUFFIXES lib lib64 cuda/lib cuda/lib64 lib/x64 cuda/lib/x64 lib/12.4/x64 lib/12.3/x64 lib/11.8/x64) -message(STATUS "CUDNN_LIBRARY: ${CUDNN_LIBRARY}") -if(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn.h") - file(READ ${CUDNN_INCLUDE_DIR}/cudnn.h CUDNN_HEADER_CONTENTS) -elseif(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn_v8.h") - file(READ ${CUDNN_INCLUDE_DIR}/cudnn_v8.h CUDNN_HEADER_CONTENTS) -elseif(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn_v7.h") - file(READ ${CUDNN_INCLUDE_DIR}/cudnn_v7.h CUDNN_HEADER_CONTENTS) -endif() -if(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn_version.h") - file(READ "${CUDNN_INCLUDE_DIR}/cudnn_version.h" CUDNN_VERSION_H_CONTENTS) - string(APPEND CUDNN_HEADER_CONTENTS "${CUDNN_VERSION_H_CONTENTS}") - unset(CUDNN_VERSION_H_CONTENTS) -elseif(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn_version_v8.h") - file(READ "${CUDNN_INCLUDE_DIR}/cudnn_version_v8.h" CUDNN_VERSION_H_CONTENTS) - string(APPEND CUDNN_HEADER_CONTENTS "${CUDNN_VERSION_H_CONTENTS}") - unset(CUDNN_VERSION_H_CONTENTS) -elseif(EXISTS "${CUDNN_INCLUDE_DIR}/cudnn_version_v7.h") - file(READ "${CUDNN_INCLUDE_DIR}/cudnn_version_v7.h" CUDNN_VERSION_H_CONTENTS) - string(APPEND CUDNN_HEADER_CONTENTS "${CUDNN_VERSION_H_CONTENTS}") - unset(CUDNN_VERSION_H_CONTENTS) -endif() -if(CUDNN_HEADER_CONTENTS) - string(REGEX MATCH "define CUDNN_MAJOR * +([0-9]+)" - _CUDNN_VERSION_MAJOR "${CUDNN_HEADER_CONTENTS}") - string(REGEX REPLACE "define CUDNN_MAJOR * +([0-9]+)" "\\1" - _CUDNN_VERSION_MAJOR "${_CUDNN_VERSION_MAJOR}") - string(REGEX MATCH "define CUDNN_MINOR * +([0-9]+)" - _CUDNN_VERSION_MINOR "${CUDNN_HEADER_CONTENTS}") - string(REGEX REPLACE "define CUDNN_MINOR * +([0-9]+)" "\\1" - _CUDNN_VERSION_MINOR "${_CUDNN_VERSION_MINOR}") - string(REGEX MATCH "define CUDNN_PATCHLEVEL * +([0-9]+)" - _CUDNN_VERSION_PATCH "${CUDNN_HEADER_CONTENTS}") - string(REGEX REPLACE "define CUDNN_PATCHLEVEL * +([0-9]+)" "\\1" - _CUDNN_VERSION_PATCH "${_CUDNN_VERSION_PATCH}") - if(NOT _CUDNN_VERSION_MAJOR) - set(_CUDNN_VERSION "?") - else() - set(_CUDNN_VERSION "${_CUDNN_VERSION_MAJOR}.${_CUDNN_VERSION_MINOR}.${_CUDNN_VERSION_PATCH}") - endif() -endif() - -if (CUDNN_INCLUDE_DIR AND CUDNN_LIBRARY AND _CUDNN_VERSION VERSION_GREATER_EQUAL MINIMUM_CUDNN_VERSION) - message(STATUS "Found CUDNN ${_CUDNN_VERSION} located on system: (include ${CUDNN_INCLUDE_DIR} lib: ${CUDNN_LIBRARY})") - set(VCPKG_POLICY_EMPTY_PACKAGE enabled) -elseif(VCPKG_TARGET_IS_WINDOWS) - message(FATAL_ERROR "Please download CUDNN from official sources (such as https://developer.nvidia.com/rdp/cudnn-download ) and extract the zip into your CUDA_TOOLKIT_ROOT (${CUDA_TOOLKIT_ROOT}). (For example: tar.exe -xvf cudnn-11.2-windows-x64-v8.1.1.33.zip --strip 1 --directory \"${CUDA_TOOLKIT_ROOT}\"") -else() - message(FATAL_ERROR "Please install CUDNN using your system package manager (the same way you installed CUDA). For example: apt install libcudnn8-dev.") -endif() - -file(INSTALL "${CURRENT_PORT_DIR}/FindCUDNN.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -file(INSTALL "${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +set(base_url "https://developer.download.nvidia.com/compute/cuda/redist") + + +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(target x86_64) +elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" AND VCPKG_TARGET_IS_LINUX) + set(target sbsa) +else() + message(FATAL_ERROR "Unsupported architecture") +endif() + +set(ext ".tar.xz") +if(VCPKG_TARGET_IS_WINDOWS) + set(platform windows) + set(ext ".zip") +else() + set(platform linux) +endif() + +set(cuDNN-windows-x86_64_HASH fdb966ec9d44f90bc153e861f17b31e2cdba1339b7d9158b5106395b2468ee17b1dc21b83271aabfbb579f4ec0f3741cd193237aa8fbb75bd071c390aa6c1a0a) +set(cuDNN-linux-x86_64_HASH 918e460e08259562e2fc92bd72f7a9f16aed9ab75b58706f84ef5ee7757b37788dcc20c8ade92d0844994038afc10465d6dda0792b4794ff67d86a6c0a63865a) + +vcpkg_download_distfile( + cudnn + URLS https://developer.download.nvidia.com/compute/cudnn/redist/cudnn/${platform}-${target}/cudnn-${platform}-${target}-${VERSION}_cuda12-archive${ext} + FILENAME cudnn-${platform}-${target}-${VERSION}_cuda12-archive${ext} + SHA512 ${cuDNN-${platform}-${target}_HASH} +) + +vcpkg_extract_source_archive( + cudnn-src + ARCHIVE ${cudnn} + SOURCE_BASE "cudnn" + #BASE_DIRECTORY "CUDA" + WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}" +) + +file(COPY "${cudnn-src}/" DESTINATION "${CURRENT_PACKAGES_DIR}") +vcpkg_install_copyright(FILE_LIST "${cudnn-src}/LICENSE") +file(REMOVE_RECURSE "${cudnn-src}" "${CURRENT_PACKAGES_DIR}/LICENSE") + +if(VCPKG_TARGET_IS_WINDOWS) + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/x64/" "${CURRENT_PACKAGES_DIR}/lib-tmp/") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") + file(RENAME "${CURRENT_PACKAGES_DIR}/lib-tmp" "${CURRENT_PACKAGES_DIR}/lib") +endif() + +if(NOT VCPKG_BUILD_TYPE) + if(EXISTS "${CURRENT_PACKAGES_DIR}/bin") + file(COPY "${CURRENT_PACKAGES_DIR}/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") + endif() + file(COPY "${CURRENT_PACKAGES_DIR}/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") +endif() + +file(INSTALL "${CURRENT_PORT_DIR}/FindCUDNN.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") + +set(VCPKG_POLICY_SKIP_DUMPBIN_CHECKS enabled) +set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) +set(VCPKG_POLICY_SKIP_ARCHITECTURE_CHECK enabled) +set(VCPKG_POLICY_ONLY_RELEASE_CRT enabled) + diff --git a/ports/cudnn/vcpkg.json b/ports/cudnn/vcpkg.json index b9e062beddd20b..f8c58efbe4c9b0 100644 --- a/ports/cudnn/vcpkg.json +++ b/ports/cudnn/vcpkg.json @@ -1,8 +1,7 @@ { "name": "cudnn", - "version": "7.6.5", - "port-version": 12, - "description": "NVIDIA's cuDNN deep neural network acceleration library.", + "version": "9.2.0.82", + "description": "NVIDIA cuDNN is a GPU-accelerated library of primitives for deep neural networks.", "homepage": "https://developer.nvidia.com/cudnn", "license": null, "supports": "(windows & x64 & !uwp) | (linux & x64) | (linux & arm64)", diff --git a/ports/cusparselt/portfile.cmake b/ports/cusparselt/portfile.cmake new file mode 100644 index 00000000000000..59e68e2ad5f08c --- /dev/null +++ b/ports/cusparselt/portfile.cmake @@ -0,0 +1,73 @@ +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") + set(target x86_64) +elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" AND VCPKG_TARGET_IS_LINUX) + set(target sbsa) +elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "ppc64" AND VCPKG_TARGET_IS_LINUX) + set(target ppc64le) +else() + message(FATAL_ERROR "Unsupported architecture") +endif() + +if(VCPKG_TARGET_IS_WINDOWS) + set(VCPKG_CRT_LINKAGE "static") +endif() + +set(ext ".tar.xz") +if(VCPKG_TARGET_IS_WINDOWS) + set(platform windows) + set(ext ".zip") + +else() + set(platform linux) +endif() + +set(${PORT}-windows-x86_64_HASH 182de592b37fc38dfe51512165301779e3bd2a5fe0262b4784ac98a3a08fd0aee807a4f11f54701e2c951e8d4a7e8574582b6bf2755b9aca534b7a8a1359e40d) +set(${PORT}-linux-x86_64_HASH 86cabe1e0ac33f9be93e263bfe0cc281688e711d5812cf64dc8c4b6f6fc167afa965121ede94d85383c88cce280b373d41299cd220a1f01421b976e04091105f) + +vcpkg_download_distfile( + ${PORT} + URLS https://developer.download.nvidia.com/compute/cusparselt/redist/libcusparse_lt/${platform}-${target}/libcusparse_lt-${platform}-${target}-${VERSION}-archive${ext} + FILENAME libcusparse_lt-${platform}-${target}-${VERSION}-archive${ext} + SHA512 ${${PORT}-${platform}-${target}_HASH} +) + +vcpkg_extract_source_archive( + ${PORT}-src + ARCHIVE ${${PORT}} + SOURCE_BASE "${PORT}" + #BASE_DIRECTORY "CUDA" + WORKING_DIRECTORY "${CURRENT_PACKAGES_DIR}" +) + +file(COPY "${${PORT}-src}/" DESTINATION "${CURRENT_PACKAGES_DIR}") +vcpkg_install_copyright(FILE_LIST "${${PORT}-src}/LICENSE") +file(REMOVE_RECURSE "${${PORT}-src}" "${CURRENT_PACKAGES_DIR}/LICENSE") + +if(VCPKG_TARGET_IS_WINDOWS) + file(GLOB dll "${CURRENT_PACKAGES_DIR}/lib/*.dll") + string(REPLACE "/lib/" "/bin/" new_dll "${dll}") + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") + file(RENAME "${dll}" "${new_dll}") +endif() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/bin" + "${CURRENT_PACKAGES_DIR}/lib/cusparseLt.lib" + ) +else() + file(GLOB static_libs "${CURRENT_PACKAGES_DIR}/lib/*_static*") + file(REMOVE_RECURSE ${static_libs}) +endif() + +if(NOT VCPKG_BUILD_TYPE) + if(EXISTS "${CURRENT_PACKAGES_DIR}/bin") + file(COPY "${CURRENT_PACKAGES_DIR}/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") + endif() + file(COPY "${CURRENT_PACKAGES_DIR}/lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") +endif() + +set(VCPKG_POLICY_SKIP_DUMPBIN_CHECKS enabled) +set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) +set(VCPKG_POLICY_SKIP_ARCHITECTURE_CHECK enabled) +set(VCPKG_POLICY_ONLY_RELEASE_CRT enabled) diff --git a/ports/cusparselt/vcpkg.json b/ports/cusparselt/vcpkg.json new file mode 100644 index 00000000000000..10d1598f2a79e9 --- /dev/null +++ b/ports/cusparselt/vcpkg.json @@ -0,0 +1,9 @@ +{ + "name": "cusparselt", + "version": "0.5.0.1", + "description": "cuSPARSELt: A High-Performance CUDA Library for Sparse Matrix-Matrix Multiplication", + "homepage": "https://docs.nvidia.com/cuda/cusparselt/index.html", + "dependencies": [ + "cuda" + ] +} diff --git a/ports/nccl/FindNCCL.cmake b/ports/nccl/FindNCCL.cmake index 771cd65cd4fca2..d5aba39d45e13c 100644 --- a/ports/nccl/FindNCCL.cmake +++ b/ports/nccl/FindNCCL.cmake @@ -9,44 +9,13 @@ # NCCL_FOUND # NCCL_INCLUDE_DIRS # NCCL_LIBRARIES -# -# Adapted from https://github.com/pytorch/pytorch/blob/master/cmake/Modules/FindNCCL.cmake - -set(NCCL_INCLUDE_DIR $ENV{NCCL_INCLUDE_DIR} CACHE PATH "Folder contains NVIDIA NCCL headers") -set(NCCL_LIB_DIR $ENV{NCCL_LIB_DIR} CACHE PATH "Folder contains NVIDIA NCCL libraries") -set(_NCCL_VERSION $ENV{NCCL_VERSION} CACHE STRING "Version of NCCL to build with") - -list(APPEND NCCL_ROOT $ENV{NCCL_ROOT_DIR} ${CUDA_TOOLKIT_ROOT_DIR}) -# Compatible layer for CMake <3.12. NCCL_ROOT will be accounted in for searching paths and libraries for CMake >=3.12. -list(APPEND CMAKE_PREFIX_PATH ${NCCL_ROOT}) find_path(NCCL_INCLUDE_DIRS NAMES nccl.h - HINTS - ${NCCL_INCLUDE_DIR} - $ENV{CUDNN_ROOT_DIR} - $ENV{CUDA_PATH} - $ENV{CUDNN_ROOT_DIR} - $ENV{CUDA_TOOLKIT_ROOT_DIR} - $ENV{NCCL} - /usr/include PATH_SUFFIXES include ) -if (USE_STATIC_NCCL) - MESSAGE(STATUS "USE_STATIC_NCCL is set. Linking with static NCCL library.") - SET(NCCL_LIBNAME "nccl_static") - if (_NCCL_VERSION) # Prefer the versioned library if a specific NCCL version is specified - set(CMAKE_FIND_LIBRARY_SUFFIXES ".a.${_NCCL_VERSION}" ${CMAKE_FIND_LIBRARY_SUFFIXES}) - endif() -else() - SET(NCCL_LIBNAME "nccl") - if (_NCCL_VERSION) # Prefer the versioned library if a specific NCCL version is specified - set(CMAKE_FIND_LIBRARY_SUFFIXES ".so.${_NCCL_VERSION}" ${CMAKE_FIND_LIBRARY_SUFFIXES}) - endif() -endif() - # Read version from header if(EXISTS "${NCCL_INCLUDE_DIRS}/nccl.h") file(READ ${NCCL_INCLUDE_DIRS}/nccl.h NCCL_HEADER_CONTENTS) @@ -72,18 +41,9 @@ if(NCCL_HEADER_CONTENTS) endif() find_library(NCCL_LIBRARIES - NAMES ${NCCL_LIBNAME} - HINTS - ${NCCL_LIB_DIR} - ${CUDA_TOOLKIT_ROOT} - $ENV{CUDA_PATH} - $ENV{CUDNN_ROOT_DIR} - $ENV{CUDA_TOOLKIT_ROOT_DIR} - $ENV{NCCL} - /usr/lib/x86_64-linux-gnu/ + NAMES nccl PATH_SUFFIXES lib - lib64 ) include(FindPackageHandleStandardArgs) diff --git a/ports/nccl/cppflags.patch b/ports/nccl/cppflags.patch new file mode 100644 index 00000000000000..15433e5452ac74 --- /dev/null +++ b/ports/nccl/cppflags.patch @@ -0,0 +1,37 @@ +diff --git a/src/Makefile b/src/Makefile +index 7a1881d9d6..7601d68978 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -112,8 +112,8 @@ $(PKGDIR)/%.pc : %.pc + $(OBJDIR)/%.o : %.cc $(INCTARGETS) + @printf "Compiling %-35s > %s\n" $< $@ + mkdir -p `dirname $@` +- $(CXX) -I. -I$(INCDIR) $(CXXFLAGS) -Iinclude -c $< -o $@ +- @$(CXX) -I. -I$(INCDIR) $(CXXFLAGS) -Iinclude -M $< > $(@:%.o=%.d.tmp) ++ $(CXX) -I. -I$(INCDIR) $(CPPFLAGS) $(CXXFLAGS) -Iinclude -c $< -o $@ ++ @$(CXX) -I. -I$(INCDIR) $(CPPFLAGS) $(CXXFLAGS) -Iinclude -M $< > $(@:%.o=%.d.tmp) + @sed "0,/^.*:/s//$(subst /,\/,$@):/" $(@:%.o=%.d.tmp) > $(@:%.o=%.d) + @sed -e 's/.*://' -e 's/\\$$//' < $(@:%.o=%.d.tmp) | fmt -1 | \ + sed -e 's/^ *//' -e 's/$$/:/' >> $(@:%.o=%.d) +diff --git a/src/device/Makefile b/src/device/Makefile +index 1e9311f1f0..065d7c8407 100644 +--- a/src/device/Makefile ++++ b/src/device/Makefile +@@ -26,7 +26,7 @@ CXXFLAGS += $(INCFLAGS) + SAY = @bash -c 'path="$$2"; [[ "$$(realpath "$$2")" =~ ^$(subst .,\.,$(abspath $(NCCLDIR)))/(.*)$$ ]] && path="$${BASH_REMATCH[1]}"; printf "%-15s %s\n" "$$1" "$$path"' SAY + + COMPILE.cu = $(NVCC) $(NVCUFLAGS) -dc $2 -o $1 +-COMPILE.cc = $(CXX) $(CXXFLAGS) -c $2 -o $1 ++COMPILE.cc = $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $2 -o $1 + define COMPILE + @$(SAY) "Compiling" $2;\ + mkdir -p $(dir $1);\ +@@ -34,7 +34,7 @@ define COMPILE + endef + + DEPENDS.cu = $(NVCC) $(NVCUFLAGS) -M -dc $1 +-DEPENDS.cc = $(CXX) $(CXXFLAGS) -M -c $1 ++DEPENDS.cc = $(CXX) $(CPPFLAGS) $(CXXFLAGS) -M -c $1 + define DEPENDS + @$(SAY) "Dependencies" $2;\ + mkdir -p $(dir $1);\ diff --git a/ports/nccl/portfile.cmake b/ports/nccl/portfile.cmake index 5909c49d5acb20..b12019ca3a69cb 100644 --- a/ports/nccl/portfile.cmake +++ b/ports/nccl/portfile.cmake @@ -1,20 +1,55 @@ +vcpkg_from_github( + OUT_SOURCE_PATH src_path + REPO NVIDIA/nccl + REF v${VERSION}-1 + SHA512 25226874007b02c0195a5715460694ada1f8a9c841ee1b49c41b6c39865e5e7f28da9a43bb06507d541320fc9be919cc09931c8026eabdff6385915c6bf95a7f + PATCHES + cppflags.patch +) -# Find NCCL. We can use FindNCCL directly since it doesn't call any functions -# that are disallowed in CMake script mode -set(MINIMUM_NCCL_VERSION "2.4.6.1") -set(NCCL_PREV_MODULE_PATH ${CMAKE_MODULE_PATH}) -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) -find_package(NCCL ${MINIMUM_NCCL_VERSION}) -set(CMAKE_MODULE_PATH ${NCCL_PREV_MODULE_PATH}) - -# Download or return -if(NCCL_FOUND) - message(STATUS "Using NCCL ${_NCCL_VERSION} located on system.") - set(VCPKG_POLICY_EMPTY_PACKAGE enabled) -else() - message(FATAL_ERROR "Please install NCCL using your system package manager (the same way you installed CUDA). For example: apt install libnccl2 libnccl-dev.") +# Note: Feel free to add arm64 support -> see conda-forge/nccl-feedstock + +set(ENV{CUDA_HOME} "${CURRENT_INSTALLED_DIR}/tools/cuda") + +#Trick to avoid calling numerous calls to z_vcpkg_get_cmake_vars and deleting the buildtree +z_vcpkg_get_cmake_vars(cmake_vars_file) +include("${cmake_vars_file}") +set(Z_VCPKG_GET_CMAKE_VARS_FILE "${cmake_vars_file}" CACHE STRING "" FORCE) +set(Z_VCPKG_GET_CMAKE_VARS_FILE_debug "${cmake_vars_file}" CACHE STRING "" FORCE) +set(Z_VCPKG_GET_CMAKE_VARS_FILE_release "${cmake_vars_file}" CACHE STRING "" FORCE) + +file(COPY "${src_path}/" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") +if(NOT VCPKG_BUILD_TYPE) + file(COPY "${src_path}/" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") +endif() + +# Trick to install with an additional OPTION +if(NOT VCPKG_BUILD_TYPE) + set(VCPKG_BUILD_TYPE debug) + vcpkg_build_make(BUILD_TARGET src.lib) + vcpkg_build_make(BUILD_TARGET install OPTIONS "PREFIX=${CURRENT_PACKAGES_DIR}/debug" LOGFILE_ROOT install) endif() +set(VCPKG_BUILD_TYPE release) +vcpkg_build_make(BUILD_TARGET src.lib) +vcpkg_build_make(BUILD_TARGET install OPTIONS "PREFIX=${CURRENT_PACKAGES_DIR}" LOGFILE_ROOT install) file(INSTALL "${CURRENT_PORT_DIR}/FindNCCL.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") configure_file("${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY) file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_fixup_pkgconfig() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(GLOB_RECURSE to_delete "${CURRENT_PACKAGES_DIR}/**/*.so*") + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/libnccl_static.a" "${CURRENT_PACKAGES_DIR}/lib/libnccl.a") + if(NOT VCPKG_BUILD_TYPE) + file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/libnccl_static.a" "${CURRENT_PACKAGES_DIR}/debug/lib/libnccl.a") + endif() +else() + file(GLOB_RECURSE to_delete "${CURRENT_PACKAGES_DIR}/**/*.a") +endif() +file(REMOVE ${to_delete}) + +vcpkg_install_copyright(FILE_LIST "${src_path}/LICENSE.txt") diff --git a/ports/nccl/vcpkg.json b/ports/nccl/vcpkg.json index 47aeef6a62af7f..da14f10d0dfc69 100644 --- a/ports/nccl/vcpkg.json +++ b/ports/nccl/vcpkg.json @@ -1,7 +1,6 @@ { "name": "nccl", - "version": "2.4.6", - "port-version": 2, + "version": "2.19.4", "description": "Optimized primitives for collective multi-GPU communication.", "supports": "linux & x64", "dependencies": [ diff --git a/versions/baseline.json b/versions/baseline.json index 4ce81c185a6a30..cd56df82dc246b 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2077,16 +2077,16 @@ "port-version": 1 }, "cuda": { - "baseline": "10.1", - "port-version": 13 + "baseline": "12.5.0", + "port-version": 0 }, "cuda-api-wrappers": { "baseline": "0.6.9", "port-version": 0 }, "cudnn": { - "baseline": "7.6.5", - "port-version": 12 + "baseline": "9.2.0.82", + "port-version": 0 }, "cunit": { "baseline": "2.1.3", @@ -2100,6 +2100,10 @@ "baseline": "2018-06-15", "port-version": 9 }, + "cusparselt": { + "baseline": "0.5.0.1", + "port-version": 0 + }, "cute-headers": { "baseline": "2019-09-20", "port-version": 2 @@ -6093,8 +6097,8 @@ "port-version": 1 }, "nccl": { - "baseline": "2.4.6", - "port-version": 2 + "baseline": "2.19.4", + "port-version": 0 }, "ncnn": { "baseline": "20240102", diff --git a/versions/c-/cuda.json b/versions/c-/cuda.json index 25c88a19c49f50..c65929cd6d6763 100644 --- a/versions/c-/cuda.json +++ b/versions/c-/cuda.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "3b7bb4e2353ca886d09be7f96388f087631dc7c9", + "version": "12.5.0", + "port-version": 0 + }, { "git-tree": "d7709c275f8ce58e6d1b4c71b8d37fba4a9a0377", "version": "10.1", diff --git a/versions/c-/cudnn.json b/versions/c-/cudnn.json index 112f84ef1c7d41..af57881e38b71b 100644 --- a/versions/c-/cudnn.json +++ b/versions/c-/cudnn.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "92086f0c888a58c6f0237426262085acb05f130a", + "version": "9.2.0.82", + "port-version": 0 + }, { "git-tree": "a8687f7d446d544d2111cac62f5aa36681c2b223", "version": "7.6.5", diff --git a/versions/c-/cusparselt.json b/versions/c-/cusparselt.json new file mode 100644 index 00000000000000..187ce9e2d90a21 --- /dev/null +++ b/versions/c-/cusparselt.json @@ -0,0 +1,9 @@ +{ + "versions": [ + { + "git-tree": "4ea48483e1109a351f168657de6e31ad109389bf", + "version": "0.5.0.1", + "port-version": 0 + } + ] +} diff --git a/versions/n-/nccl.json b/versions/n-/nccl.json index 5739121ed520d0..d6e4d0c78c2e6b 100644 --- a/versions/n-/nccl.json +++ b/versions/n-/nccl.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "d64c8ed1d4f206752a3f1281c6a61ea458f8fba5", + "version": "2.19.4", + "port-version": 0 + }, { "git-tree": "6f07fdf26f53fd4974ad4cb6d6df430dc28e52aa", "version": "2.4.6",