rocmPackages: 6.4.3 -> 7.0.2 (#469378)
This commit is contained in:
@@ -67,6 +67,8 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
|
||||
|
||||
- `services.cgit` before always had the git-http-backend and its "export all" setting enabled, which sidestepped any access control configured in cgit's settings. Now you have to make a decision and either enable or disable `services.cgit.gitHttpBackend.checkExportOkFiles` (or disable the git-http-backend).
|
||||
|
||||
- `rocmPackages_6` has been removed. `rocmPackages` has been updated to ROCm 7.x. Out of tree packages may rely on obsolete hipblas APIs or compile time constant warp size and need to be updated.
|
||||
|
||||
- The Bash implementation of the `nixos-rebuild` program is removed. All switchable systems now use the Python rewrite. Any prior usage of `system.rebuild.enableNg` must now be removed. If you have any outstanding issues with the new implementation, please open an issue on GitHub.
|
||||
|
||||
- `services.desktopManager.gnome` no longer installs the Geary e-mail client since it is not part of the GNOME [core applications](https://apps.gnome.org/) list. Geary's position in the default favorite apps section has been replaced by GNOME Text Editor. To keep it installed, add `programs.geary.enable = true;` to your configuration.
|
||||
|
||||
@@ -92,7 +92,7 @@ let
|
||||
|
||||
${prepareRunCommands}
|
||||
|
||||
sudo nix-build --option extra-sandbox-paths '${sandboxPathsList}' ${lib.escapeShellArgs nixFlags} -A ${testPath} "$@"
|
||||
sudo --preserve-env=NIXPKGS_ALLOW_UNFREE nix-build --option extra-sandbox-paths '${sandboxPathsList}' ${lib.escapeShellArgs nixFlags} -A ${testPath} "$@"
|
||||
'';
|
||||
in
|
||||
# The main output is the run script, inject the derivation for the actual test
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
diff --git a/extern/hipew/include/hiprtew.h b/extern/hipew/include/hiprtew.h
|
||||
index d245cb76..952ed805 100644
|
||||
--- a/extern/hipew/include/hiprtew.h
|
||||
+++ b/extern/hipew/include/hiprtew.h
|
||||
@@ -157,7 +157,7 @@ typedef hiprtError (thiprtDestroyGlobalStackBuffer)( hiprtContext context, hiprt
|
||||
|
||||
typedef hiprtError(thiprtDestroyFuncTable)(hiprtContext context,
|
||||
hiprtFuncTable funcTable);
|
||||
-typedef void(thiprtSetLogLevel)( hiprtLogLevel level );
|
||||
+typedef hiprtError(thiprtSetLogLevel)( hiprtContext context, hiprtLogLevel level );
|
||||
|
||||
/* Function declarations. */
|
||||
extern thiprtCreateContext *hiprtCreateContext;
|
||||
diff --git a/extern/hipew/src/hipew.c b/extern/hipew/src/hipew.c
|
||||
index e72ccde6..138e1efc 100644
|
||||
--- a/extern/hipew/src/hipew.c
|
||||
+++ b/extern/hipew/src/hipew.c
|
||||
@@ -241,13 +241,13 @@ static int hipewHipInit(void) {
|
||||
/* ROCm 6 changes paths from /opt/rocm/hip/lib to /opt/rocm/lib, so
|
||||
* search for libraries there. */
|
||||
|
||||
- const char* hip_paths[] = { "libamdhip64.so",
|
||||
+ const char* hip_paths[] = { "libamdhip64.so.7",
|
||||
+ "/opt/rocm/lib/libamdhip64.so.7",
|
||||
+ "/opt/rocm/hip/lib/libamdhip64.so.7",
|
||||
"libamdhip64.so.6",
|
||||
"/opt/rocm/lib/libamdhip64.so.6",
|
||||
"/opt/rocm/hip/lib/libamdhip64.so.6",
|
||||
- "libamdhip64.so.7",
|
||||
- "/opt/rocm/lib/libamdhip64.so.7",
|
||||
- "/opt/rocm/hip/lib/libamdhip64.so.7",
|
||||
+ "libamdhip64.so",
|
||||
NULL };
|
||||
#endif
|
||||
static int initialized = 0;
|
||||
diff --git a/intern/cycles/device/hiprt/device_impl.cpp b/intern/cycles/device/hiprt/device_impl.cpp
|
||||
index c251a8d0..b54bc36c 100644
|
||||
--- a/intern/cycles/device/hiprt/device_impl.cpp
|
||||
+++ b/intern/cycles/device/hiprt/device_impl.cpp
|
||||
@@ -104,10 +104,10 @@ HIPRTDevice::HIPRTDevice(const DeviceInfo &info,
|
||||
}
|
||||
|
||||
if (LOG_IS_ON(LOG_LEVEL_TRACE)) {
|
||||
- hiprtSetLogLevel(hiprtLogLevelInfo | hiprtLogLevelWarn | hiprtLogLevelError);
|
||||
+ hiprtSetLogLevel(hiprt_context, hiprtLogLevelInfo | hiprtLogLevelWarn | hiprtLogLevelError);
|
||||
}
|
||||
else {
|
||||
- hiprtSetLogLevel(hiprtLogLevelNone);
|
||||
+ hiprtSetLogLevel(hiprt_context, hiprtLogLevelNone);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/intern/cycles/kernel/CMakeLists.txt b/intern/cycles/kernel/CMakeLists.txt
|
||||
index bcaf4e16..aa6a3d17 100644
|
||||
--- a/intern/cycles/kernel/CMakeLists.txt
|
||||
+++ b/intern/cycles/kernel/CMakeLists.txt
|
||||
@@ -93,13 +93,13 @@ set(SRC_KERNEL_DEVICE_HIPRT_HEADERS
|
||||
set(SRC_KERNEL_DEVICE_HIPRT_SDK
|
||||
hiprt/impl/Aabb.h
|
||||
hiprt/impl/BvhNode.h
|
||||
- hiprt/impl/Geometry.h
|
||||
+ hiprt/impl/Header.h
|
||||
hiprt/impl/hiprt_device_impl.h
|
||||
hiprt/impl/hiprt_kernels_bitcode.h
|
||||
hiprt/impl/Instance.h
|
||||
+ hiprt/impl/Obb.h
|
||||
hiprt/impl/QrDecomposition.h
|
||||
hiprt/impl/Quaternion.h
|
||||
- hiprt/impl/Scene.h
|
||||
hiprt/impl/Transform.h
|
||||
hiprt/impl/Triangle.h
|
||||
)
|
||||
@@ -126,6 +126,9 @@ stdenv'.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-fNnQRfGfNc7rbk8npkcYtoAqRjJc6MaV4mqtSJxd0EM=";
|
||||
};
|
||||
|
||||
# Minimal backport of hiprt 3.x support from https://projects.blender.org/blender/blender/pulls/144889
|
||||
patches = lib.optional rocmSupport ./hiprt-3-compat.patch;
|
||||
|
||||
postPatch =
|
||||
(lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
: > build_files/cmake/platform/platform_apple_xcode.cmake
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index fc61af7..b2b594e 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -303,7 +303,7 @@ if (MAGMA_ENABLE_HIP)
|
||||
set(GPU_ARCH_FLAGS ${DEVCCFLAGS})
|
||||
|
||||
#add_compile_options(${GPU_ARCH_FLAGS})
|
||||
- set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__HIP_PLATFORM_AMD__" )
|
||||
+ set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__HIP_PLATFORM_AMD__ -DHIPBLAS_V2" )
|
||||
option(ROCM_CORE "Location of the rocm-core package")
|
||||
execute_process(COMMAND "${CMAKE_SOURCE_DIR}/tools/get-rocm-version.sh" "${ROCM_CORE}" OUTPUT_VARIABLE ROCM_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
message(STATUS "ROCM_VERSION=${ROCM_VERSION}")
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 44880ab..afaab45 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -846,7 +846,7 @@ ifeq ($(BACKEND),cuda)
|
||||
d_ext := cu
|
||||
else ifeq ($(BACKEND),hip)
|
||||
d_ext := cpp
|
||||
-CXXFLAGS += -D__HIP_PLATFORM_AMD__
|
||||
+CXXFLAGS += -D__HIP_PLATFORM_AMD__ -DHIPBLAS_V2
|
||||
CXXFLAGS += -DROCM_VERSION=$(shell ./tools/get-rocm-version.sh)
|
||||
endif
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
cmake,
|
||||
cudaPackages,
|
||||
cudaSupport ? config.cudaSupport,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
fetchurl,
|
||||
gfortran,
|
||||
gpuTargets ? [ ], # Non-CUDA targets, that is HIP
|
||||
rocmPackages,
|
||||
@@ -13,6 +13,7 @@
|
||||
lib,
|
||||
libpthreadstubs,
|
||||
ninja,
|
||||
perl,
|
||||
python3,
|
||||
config,
|
||||
# At least one back-end has to be enabled,
|
||||
@@ -115,9 +116,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "magma";
|
||||
version = "2.9.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://icl.cs.utk.edu/projectsfiles/magma/downloads/magma-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-/3f9Nyaz3+w7+1V5CwZICqXMOEOWwts1xW/a5KgsZBw=";
|
||||
src = fetchFromGitHub {
|
||||
owner = "icl-utk-edu";
|
||||
repo = "magma";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-ZV50id9qiCrc1K87812Lvv1tmeU/6vhpxFCz8nj61wM=";
|
||||
};
|
||||
|
||||
# Magma doesn't have anything which could be run under doCheck, but it does build test suite executables.
|
||||
@@ -134,6 +137,24 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
url = "https://github.com/icl-utk-edu/magma/commit/2fecaf3f0c811344363f713669c1fe30f6879acd.patch";
|
||||
hash = "sha256-Dfzq2gqoLSByCLWV5xvY/lXZeVa/yQ67lDSoIAa9jUU=";
|
||||
})
|
||||
]
|
||||
++ lib.optionals rocmSupport [
|
||||
# TODO: Drop both these patches on next magma release
|
||||
(fetchpatch {
|
||||
# ROCm 7.0 compat: use HIPBLAS_V2 types and APIs
|
||||
# Requires building from git w/ make generate call. If applied to release tarball
|
||||
# pre-generated hipified code will remain unpatched
|
||||
name = "magma-ROCm-7.0-compat.patch";
|
||||
url = "https://github.com/icl-utk-edu/magma/commit/02ecee0ccc56cce85194fdda18c9e0614797b2f9.patch";
|
||||
hash = "sha256-vm58X30ZR02sOMsKrvxEcEF27tJYuuyZZrz+GGFNz5Q=";
|
||||
excludes = [
|
||||
"testing/testing_ztrsv_batched.cpp"
|
||||
"CMakeLists.txt"
|
||||
"Makefile"
|
||||
];
|
||||
})
|
||||
# Vendored patch with CMakeLists.txt and Makefile hunks from above commit (context differs)
|
||||
./magma-hipblas-v2-buildflags.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
@@ -147,12 +168,25 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
autoPatchelfHook
|
||||
cmake
|
||||
ninja
|
||||
perl # for make generate
|
||||
gfortran
|
||||
]
|
||||
++ lists.optionals cudaSupport [
|
||||
cudaPackages.cuda_nvcc
|
||||
];
|
||||
|
||||
# README Step 0: generate precision variants and CMake.src.{hip|cuda} when building from git
|
||||
# GPU_TARGET is a dummy value; CMake vars control target selection and `make generate`
|
||||
# does not use the target setting, but the main makefile errors without it
|
||||
preConfigure = ''
|
||||
cat > make.inc <<EOF
|
||||
BACKEND = ${if rocmSupport then "hip" else "cuda"}
|
||||
FORT = true
|
||||
GPU_TARGET = ${if rocmSupport then "gfx900" else "sm_90"}
|
||||
EOF
|
||||
make -j$NIX_BUILD_CORES generate
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
libpthreadstubs
|
||||
lapack
|
||||
@@ -183,6 +217,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
env.CFLAGS = "-DADD_" + lib.optionalString rocmSupport " -fopenmp";
|
||||
env.CXXFLAGS = finalAttrs.env.CFLAGS;
|
||||
env.FFLAGS = "-DADD_";
|
||||
env.ROCM_PATH = lib.optionalString rocmSupport rocmPackages.clr;
|
||||
|
||||
cmakeFlags = [
|
||||
(strings.cmakeFeature "GPU_TARGET" gpuTargetString)
|
||||
@@ -199,10 +234,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
(strings.cmakeFeature "MIN_ARCH" minArch) # Disarms magma's asserts
|
||||
]
|
||||
++ lists.optionals rocmSupport [
|
||||
# Can be removed once https://github.com/icl-utk-edu/magma/pull/27 is merged
|
||||
# Can't easily apply the PR as a patch because we rely on the tarball with pregenerated
|
||||
# hipified files ∴ fetchpatch of the PR will apply cleanly but fail to build
|
||||
(strings.cmakeFeature "ROCM_CORE" "${rocmPackages.clr}")
|
||||
(strings.cmakeFeature "CMAKE_C_COMPILER" "${rocmPackages.clang}/bin/clang")
|
||||
(strings.cmakeFeature "CMAKE_CXX_COMPILER" "${rocmPackages.clang}/bin/clang++")
|
||||
];
|
||||
|
||||
@@ -12,15 +12,16 @@
|
||||
cxxopts,
|
||||
nix-update-script,
|
||||
config,
|
||||
# Upstream has rocm/hip support, too. anyone?
|
||||
cudaSupport ? config.cudaSupport,
|
||||
cudaPackages,
|
||||
rocmSupport ? config.rocmSupport,
|
||||
rocmPackages,
|
||||
autoAddDriverRunpath,
|
||||
fetchpatch2,
|
||||
}:
|
||||
let
|
||||
version = "1.1.4";
|
||||
torch = python3.pkgs.torch.override { inherit cudaSupport; };
|
||||
torch = python3.pkgs.torch.override { inherit cudaSupport rocmSupport; };
|
||||
# Using a normal stdenv with cuda torch gives
|
||||
# ld: /nix/store/k1l7y96gv0nc685cg7i3g43i4icmddzk-python3.11-torch-2.2.1-lib/lib/libc10.so: undefined reference to `std::ios_base_library_init()@GLIBCXX_3.4.32'
|
||||
stdenv' = if cudaSupport then cudaPackages.backendStdenv else stdenv;
|
||||
@@ -43,10 +44,32 @@ stdenv'.mkDerivation {
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = lib.optionalString rocmSupport ''
|
||||
# ROCm CMake targets must be available before find_package(Torch)
|
||||
# because Torch's Caffe2Targets.cmake references them in torch_hip_library
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail "find_package(Torch REQUIRED)" \
|
||||
"find_package(hip REQUIRED)
|
||||
find_package(hiprtc REQUIRED)
|
||||
find_package(hipblas REQUIRED)
|
||||
find_package(hipfft REQUIRED)
|
||||
find_package(hiprand REQUIRED)
|
||||
find_package(hipsparse REQUIRED)
|
||||
find_package(hipsolver REQUIRED)
|
||||
find_package(hipblaslt REQUIRED)
|
||||
find_package(rocblas REQUIRED)
|
||||
find_package(rocsolver REQUIRED)
|
||||
find_package(miopen REQUIRED)
|
||||
find_package(Torch REQUIRED)"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
]
|
||||
++ lib.optionals rocmSupport [
|
||||
rocmPackages.clr
|
||||
]
|
||||
++ lib.optionals cudaSupport [
|
||||
cudaPackages.cuda_nvcc
|
||||
autoAddDriverRunpath
|
||||
@@ -61,16 +84,39 @@ stdenv'.mkDerivation {
|
||||
torch
|
||||
opencv
|
||||
]
|
||||
++ lib.optionals rocmSupport [
|
||||
rocmPackages.clr
|
||||
rocmPackages.hipblas
|
||||
rocmPackages.hipfft
|
||||
rocmPackages.hiprand
|
||||
rocmPackages.hipsparse
|
||||
rocmPackages.hipsolver
|
||||
rocmPackages.hipblaslt
|
||||
rocmPackages.rocblas
|
||||
rocmPackages.rocsolver
|
||||
rocmPackages.rocsolver
|
||||
rocmPackages.miopen
|
||||
]
|
||||
++ lib.optionals cudaSupport [
|
||||
cudaPackages.cuda_cudart
|
||||
];
|
||||
|
||||
env.TORCH_CUDA_ARCH_LIST = "${lib.concatStringsSep ";" python3.pkgs.torch.cudaCapabilities}";
|
||||
env =
|
||||
lib.optionalAttrs cudaSupport {
|
||||
TORCH_CUDA_ARCH_LIST = "${lib.concatStringsSep ";" python3.pkgs.torch.cudaCapabilities}";
|
||||
NIX_LDFLAGS = "-L${lib.getOutput "stubs" cudaPackages.cuda_cudart}/lib/stubs"; # fixes -lcuda not found
|
||||
}
|
||||
// lib.optionalAttrs rocmSupport {
|
||||
HIPFLAGS = "-I${lib.getInclude rocmPackages.rocthrust}/include -I${lib.getInclude rocmPackages.rocprim}/include";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "CMAKE_SKIP_RPATH" true)
|
||||
(lib.cmakeFeature "FETCHCONTENT_TRY_FIND_PACKAGE_MODE" "ALWAYS")
|
||||
]
|
||||
++ lib.optionals rocmSupport [
|
||||
(lib.cmakeFeature "GPU_RUNTIME" "HIP")
|
||||
]
|
||||
++ lib.optionals cudaSupport [
|
||||
(lib.cmakeFeature "GPU_RUNTIME" "CUDA")
|
||||
(lib.cmakeFeature "CUDA_TOOLKIT_ROOT_DIR" "${cudaPackages.cudatoolkit}/")
|
||||
@@ -87,7 +133,10 @@ stdenv'.mkDerivation {
|
||||
# vendored+modified gsplat
|
||||
lib.licenses.asl20
|
||||
];
|
||||
maintainers = [ lib.maintainers.jcaesar ];
|
||||
maintainers = [
|
||||
lib.maintainers.jcaesar
|
||||
lib.maintainers.LunNova
|
||||
];
|
||||
platforms = lib.platforms.linux ++ lib.optionals (!cudaSupport) lib.platforms.darwin;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -14,16 +14,15 @@
|
||||
stdenv,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "zluda";
|
||||
version = "4-unstable-2025-01-28";
|
||||
version = "6-preview.45";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vosen";
|
||||
repo = "ZLUDA";
|
||||
# Cargo.lock introduced and major bug fixes in this commit
|
||||
rev = "df5a96d935b014f88e30af4abc487882b0b54a76";
|
||||
hash = "sha256-T2pCZZzZbCLI01YSF0VguKtL3EDEdIoUyH4C9ccaCi8=";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-796OuIM5a0saE0v1QHHAGRjUPT+YAIfUuEtAruMn8Mk=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@@ -35,6 +34,7 @@ rustPlatform.buildRustPackage rec {
|
||||
rocmPackages.rocsolver
|
||||
rocmPackages.rocblas
|
||||
rocmPackages.hipblas
|
||||
rocmPackages.hipblaslt
|
||||
rocmPackages.rocm-cmake
|
||||
rocmPackages.hipfft
|
||||
zlib
|
||||
@@ -50,7 +50,10 @@ rustPlatform.buildRustPackage rec {
|
||||
clang
|
||||
];
|
||||
|
||||
cargoHash = "sha256-hDQWjzkx7YdkgSmNKTzCa2VhBFvn6P9QANV9hJ7UiT8=";
|
||||
cargoHash = "sha256-YNBeweZ/vfXGfM0lrZbAh71z6Rb0+B7nOuO8VL2BmCo=";
|
||||
|
||||
# Tests require a GPU and segfault in the sandbox
|
||||
doCheck = false;
|
||||
|
||||
# xtask doesn't support passing --target, but nix hooks expect the folder structure from when it's set
|
||||
env.CARGO_BUILD_TARGET = stdenv.hostPlatform.rust.cargoShortTarget;
|
||||
@@ -80,10 +83,10 @@ rustPlatform.buildRustPackage rec {
|
||||
meta = {
|
||||
description = "CUDA on non-Nvidia GPUs";
|
||||
homepage = "https://github.com/vosen/ZLUDA";
|
||||
changelog = "https://github.com/vosen/ZLUDA/releases/tag/${src.rev}";
|
||||
changelog = "https://github.com/vosen/ZLUDA/releases/tag/${finalAttrs.src.rev}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [
|
||||
lib.maintainers.errnoh
|
||||
];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
From 6ac72ec84269737626b1f5e43e64729f0922d182 Mon Sep 17 00:00:00 2001
|
||||
From: "Ding, Yi" <yi.ding@amd.com>
|
||||
Date: Wed, 9 Jul 2025 03:12:39 +0000
|
||||
Subject: [PATCH] Avoid compile kernel in host pass
|
||||
|
||||
---
|
||||
include/ck_tile/host/kernel_launch.hpp | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/include/ck_tile/host/kernel_launch.hpp b/include/ck_tile/host/kernel_launch.hpp
|
||||
index 9770e99738..f6ccb6968b 100644
|
||||
--- a/include/ck_tile/host/kernel_launch.hpp
|
||||
+++ b/include/ck_tile/host/kernel_launch.hpp
|
||||
@@ -4,11 +4,12 @@
|
||||
#pragma once
|
||||
|
||||
#include "ck_tile/core/config.hpp"
|
||||
-#include "ck_tile/host/stream_config.hpp"
|
||||
+#include "ck_tile/core/utility/ignore.hpp"
|
||||
#include "ck_tile/host/hip_check_error.hpp"
|
||||
+#include "ck_tile/host/stream_config.hpp"
|
||||
#include "ck_tile/host/timer.hpp"
|
||||
-#include <hip/hip_runtime.h>
|
||||
#include <cstddef>
|
||||
+#include <hip/hip_runtime.h>
|
||||
|
||||
namespace ck_tile {
|
||||
|
||||
@@ -24,7 +25,11 @@ __launch_bounds__(MaxThreadPerBlock, MinBlockPerCu)
|
||||
#endif
|
||||
__global__ void kentry(Args... args)
|
||||
{
|
||||
+#if defined(__HIP_DEVICE_COMPILE__)
|
||||
Kernel{}(args...);
|
||||
+#else
|
||||
+ (..., (ignore = args, 0));
|
||||
+#endif
|
||||
}
|
||||
|
||||
//
|
||||
-39
@@ -1,39 +0,0 @@
|
||||
From f259eca77c592813e11752a46c4e1f9a74c64091 Mon Sep 17 00:00:00 2001
|
||||
From: Luna Nova <git@lunnova.dev>
|
||||
Date: Fri, 11 Oct 2024 02:56:22 -0700
|
||||
Subject: [PATCH] [hipcc] Remove extra definition of hipBinUtilPtr_ in derived
|
||||
platforms
|
||||
|
||||
Fixes UB when hipBinUtilPtr_ is used.
|
||||
---
|
||||
amd/hipcc/src/hipBin_amd.h | 1 -
|
||||
amd/hipcc/src/hipBin_nvidia.h | 1 -
|
||||
2 files changed, 2 deletions(-)
|
||||
|
||||
diff --git a/amd/hipcc/src/hipBin_amd.h b/amd/hipcc/src/hipBin_amd.h
|
||||
index 0a782d1beab9..36cd625ae8bc 100644
|
||||
--- a/src/hipBin_amd.h
|
||||
+++ b/src/hipBin_amd.h
|
||||
@@ -42,7 +42,6 @@ THE SOFTWARE.
|
||||
|
||||
class HipBinAmd : public HipBinBase {
|
||||
private:
|
||||
- HipBinUtil* hipBinUtilPtr_;
|
||||
string hipClangPath_ = "";
|
||||
string roccmPathEnv_, hipRocclrPathEnv_, hsaPathEnv_;
|
||||
PlatformInfo platformInfoAMD_;
|
||||
diff --git a/amd/hipcc/src/hipBin_nvidia.h b/amd/hipcc/src/hipBin_nvidia.h
|
||||
index ff142cc1cea2..09b7b80979c7 100644
|
||||
--- a/src/hipBin_nvidia.h
|
||||
+++ b/src/hipBin_nvidia.h
|
||||
@@ -31,7 +31,6 @@ THE SOFTWARE.
|
||||
|
||||
class HipBinNvidia : public HipBinBase {
|
||||
private:
|
||||
- HipBinUtil* hipBinUtilPtr_;
|
||||
string cudaPath_ = "";
|
||||
PlatformInfo platformInfoNV_;
|
||||
string hipCFlags_, hipCXXFlags_, hipLdFlags_;
|
||||
--
|
||||
2.46.0
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/src/init.cc b/src/init.cc
|
||||
index 738f756..1b0e4fc 100644
|
||||
--- a/src/init.cc
|
||||
+++ b/src/init.cc
|
||||
@@ -2049,7 +2049,7 @@ static ncclResult_t ncclCommInitRankFunc(struct ncclAsyncJob* job_) {
|
||||
if (mscclEnabled() && (comm->topo->mscclEnabled || mscclForceEnabled()) && mscclppCommCompatible(comm)) {
|
||||
hipDeviceProp_t devProp;
|
||||
CUDACHECK(hipGetDeviceProperties(&devProp, cudaDev));
|
||||
- comm->mscclppCompatible = IsArchMatch(devProp.gcnArchName, "gfx94");
|
||||
+ comm->mscclppCompatible = IsArchMatch(devProp.gcnArchName, "gfx9");
|
||||
if (comm->mscclppCompatible) {
|
||||
bool mapContainsId = (mscclpp_uniqueIdMap.count(job->commId) > 0);
|
||||
auto& mscclppUniqueId = mscclpp_uniqueIdMap[job->commId];
|
||||
@@ -1,172 +0,0 @@
|
||||
diff --git a/src/include/bootstrap.h b/src/include/bootstrap.h
|
||||
index 8c5f081..9922b79 100644
|
||||
--- a/src/include/bootstrap.h
|
||||
+++ b/src/include/bootstrap.h
|
||||
@@ -10,11 +10,13 @@
|
||||
#include "nccl.h"
|
||||
#include "comm.h"
|
||||
|
||||
+// this is accessed through unaligned ptrs because ncclUniqueId is a typedef of char[128]
|
||||
struct ncclBootstrapHandle {
|
||||
uint64_t magic;
|
||||
union ncclSocketAddress addr;
|
||||
};
|
||||
static_assert(sizeof(struct ncclBootstrapHandle) <= sizeof(ncclUniqueId), "Bootstrap handle is too large to fit inside NCCL unique ID");
|
||||
+static_assert(alignof(struct ncclBootstrapHandle) == alignof(ncclUniqueId), "Bootstrap handle must have same alignment as NCCL unique ID to avoid UB");
|
||||
|
||||
ncclResult_t bootstrapNetInit();
|
||||
ncclResult_t bootstrapCreateRoot(struct ncclBootstrapHandle* handle, bool idFromEnv);
|
||||
diff --git a/src/misc/rocmwrap.cc b/src/misc/rocmwrap.cc
|
||||
index b3063d5..464b80d 100644
|
||||
--- a/src/misc/rocmwrap.cc
|
||||
+++ b/src/misc/rocmwrap.cc
|
||||
@@ -131,9 +131,12 @@ static void initOnceFunc() {
|
||||
//format and store the kernel conf file location
|
||||
snprintf(kernel_conf_file, sizeof(kernel_conf_file), "/boot/config-%s", utsname.release);
|
||||
fp = fopen(kernel_conf_file, "r");
|
||||
- if (fp == NULL) INFO(NCCL_INIT,"Could not open kernel conf file");
|
||||
+ if (fp == NULL) {
|
||||
+ INFO(NCCL_INIT,"Could not open kernel conf file, will assume CONFIG_DMABUF_MOVE_NOTIFY and CONFIG_PCI_P2PDMA are enabled");
|
||||
+ }
|
||||
//look for kernel_opt1 and kernel_opt2 in the conf file and check
|
||||
- while (fgets(buf, sizeof(buf), fp) != NULL) {
|
||||
+ // FIXME: This check is broken, CONFIG_DMABUF_MOVE_NOTIFY could be across a buf boundary.
|
||||
+ while (fp && fgets(buf, sizeof(buf), fp) != NULL) {
|
||||
if (strstr(buf, kernel_opt1) != NULL) {
|
||||
found_opt1 = 1;
|
||||
INFO(NCCL_INIT,"CONFIG_DMABUF_MOVE_NOTIFY=y in /boot/config-%s", utsname.release);
|
||||
@@ -143,11 +146,12 @@ static void initOnceFunc() {
|
||||
INFO(NCCL_INIT,"CONFIG_PCI_P2PDMA=y in /boot/config-%s", utsname.release);
|
||||
}
|
||||
}
|
||||
- if (!found_opt1 || !found_opt2) {
|
||||
+ if (fp && (!found_opt1 || !found_opt2)) {
|
||||
dmaBufSupport = 0;
|
||||
INFO(NCCL_INIT, "CONFIG_DMABUF_MOVE_NOTIFY and CONFIG_PCI_P2PDMA should be set for DMA_BUF in /boot/config-%s", utsname.release);
|
||||
INFO(NCCL_INIT, "DMA_BUF_SUPPORT Failed due to OS kernel support");
|
||||
}
|
||||
+ if (fp) fclose(fp);
|
||||
|
||||
if(dmaBufSupport) INFO(NCCL_INIT, "DMA_BUF Support Enabled");
|
||||
else goto error;
|
||||
diff --git a/src/nccl.h.in b/src/nccl.h.in
|
||||
index 1d127b0..6296073 100644
|
||||
--- a/src/nccl.h.in
|
||||
+++ b/src/nccl.h.in
|
||||
@@ -39,7 +39,7 @@ typedef struct ncclComm* ncclComm_t;
|
||||
#define NCCL_UNIQUE_ID_BYTES 128
|
||||
/*! @brief Opaque unique id used to initialize communicators
|
||||
@details The ncclUniqueId must be passed to all participating ranks */
|
||||
-typedef struct { char internal[NCCL_UNIQUE_ID_BYTES]; /*!< Opaque array>*/} ncclUniqueId;
|
||||
+typedef struct alignas(int64_t) { char internal[NCCL_UNIQUE_ID_BYTES]; /*!< Opaque array>*/} ncclUniqueId;
|
||||
|
||||
/*! @defgroup rccl_result_code Result Codes
|
||||
@details The various result codes that RCCL API calls may return
|
||||
diff --git a/src/proxy.cc b/src/proxy.cc
|
||||
index 50e5437..51bb401 100644
|
||||
--- a/src/proxy.cc
|
||||
+++ b/src/proxy.cc
|
||||
@@ -965,7 +965,11 @@ struct ncclProxyConnectionPool {
|
||||
|
||||
static ncclResult_t ncclProxyNewConnection(struct ncclProxyConnectionPool* pool, int* id) {
|
||||
if (pool->offset == NCCL_PROXY_CONN_POOL_SIZE) {
|
||||
- NCCLCHECK(ncclRealloc(&pool->pools, pool->banks, pool->banks+1));
|
||||
+ if (pool->pools) {
|
||||
+ NCCLCHECK(ncclRealloc(&pool->pools, pool->banks, pool->banks+1));
|
||||
+ } else {
|
||||
+ NCCLCHECK(ncclCalloc(&pool->pools, pool->banks+1));
|
||||
+ }
|
||||
NCCLCHECK(ncclCalloc(pool->pools+pool->banks, NCCL_PROXY_CONN_POOL_SIZE));
|
||||
pool->banks++;
|
||||
pool->offset = 0;
|
||||
diff --git a/src/transport/net_ib.cc b/src/transport/net_ib.cc
|
||||
index 6d77784..49762d3 100644
|
||||
--- a/src/transport/net_ib.cc
|
||||
+++ b/src/transport/net_ib.cc
|
||||
@@ -573,7 +573,7 @@ ncclResult_t ncclIbGdrSupport() {
|
||||
// Requires support from NIC driver modules
|
||||
// Use ONLY for debugging!
|
||||
moduleLoaded = 1;
|
||||
- INFO(NCCL_INIT, "RCCL_FORCE_ENABLE_GDRDMA = 1, so explicitly setting moduleLoaded = 1");
|
||||
+ INFO(NCCL_INIT, "ncclIbGdrSupport: RCCL_FORCE_ENABLE_GDRDMA = 1, so explicitly setting moduleLoaded = 1");
|
||||
}
|
||||
|
||||
if (moduleLoaded == -1) {
|
||||
@@ -586,9 +586,9 @@ ncclResult_t ncclIbGdrSupport() {
|
||||
int i = 0;
|
||||
|
||||
while (memory_peers_paths[i]) {
|
||||
if (access(memory_peers_paths[i], F_OK) == 0) {
|
||||
moduleLoaded = 1;
|
||||
- INFO(NCCL_INIT,"Found %s", memory_peers_paths[i]);
|
||||
+ INFO(NCCL_INIT,"ncclIbGdrSupport: Found %s", memory_peers_paths[i]);
|
||||
break;
|
||||
} else {
|
||||
moduleLoaded = 0;
|
||||
@@ -612,22 +613,23 @@ ncclResult_t ncclIbGdrSupport() {
|
||||
if (moduleLoaded == 0) {
|
||||
// Check for `ib_register_peer_memory_client` symbol in `/proc/kallsyms`
|
||||
// if your system uses native OS ib_peer module
|
||||
- char buf[256];
|
||||
- FILE *fp = NULL;
|
||||
- fp = fopen("/proc/kallsyms", "r");
|
||||
+ FILE *fp = fopen("/proc/kallsyms", "r");
|
||||
+ char *line = NULL;
|
||||
+ size_t len = 0;
|
||||
|
||||
if (fp == NULL) {
|
||||
- INFO(NCCL_INIT,"Could not open /proc/kallsyms");
|
||||
+ INFO(NCCL_INIT,"ncclIbGdrSupport: Could not open /proc/kallsyms to check for ib_register_peer_memory_client");
|
||||
} else {
|
||||
- while (fgets(buf, sizeof(buf), fp) != NULL) {
|
||||
- if (strstr(buf, "t ib_register_peer_memory_client") != NULL ||
|
||||
- strstr(buf, "T ib_register_peer_memory_client") != NULL) {
|
||||
+ while (getline(&line, &len, fp) > 0) {
|
||||
+ if (line && strstr(line, "ib_register_peer_memory_client") != NULL) {
|
||||
moduleLoaded = 1;
|
||||
- INFO(NCCL_INIT,"Found ib_register_peer_memory_client in /proc/kallsyms");
|
||||
+ INFO(NCCL_INIT,"ncclIbGdrSupport: Found ib_register_peer_memory_client in /proc/kallsyms");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
+ if (line) free(line);
|
||||
+ if (fp) fclose(fp);
|
||||
}
|
||||
#else
|
||||
// Check for the nv_peer_mem module being loaded
|
||||
@@ -637,7 +639,7 @@ ncclResult_t ncclIbGdrSupport() {
|
||||
#endif
|
||||
}
|
||||
if (moduleLoaded == 0) {
|
||||
- INFO(NCCL_INIT,"GDRDMA not enabled. Could not find memory_peers directory or peer_memory symbol");
|
||||
+ INFO(NCCL_INIT,"ncclIbGdrSupport: GDRDMA not enabled. Could not find memory_peers directory or peer_memory symbol");
|
||||
return ncclSystemError;
|
||||
}
|
||||
return ncclSuccess;
|
||||
diff --git a/tools/ib-test/include/nccl.h b/tools/ib-test/include/nccl.h
|
||||
index 2c86c33..5801c61 100755
|
||||
--- a/tools/ib-test/include/nccl.h
|
||||
+++ b/tools/ib-test/include/nccl.h
|
||||
@@ -31,7 +31,7 @@ extern "C" {
|
||||
typedef struct ncclComm* ncclComm_t;
|
||||
|
||||
#define NCCL_UNIQUE_ID_BYTES 128
|
||||
-typedef struct { char internal[NCCL_UNIQUE_ID_BYTES]; } ncclUniqueId;
|
||||
+typedef struct alignas(int64_t) { char internal[NCCL_UNIQUE_ID_BYTES]; } ncclUniqueId;
|
||||
|
||||
/* Error type */
|
||||
typedef enum { ncclSuccess = 0,
|
||||
diff --git a/tools/topo_expl/include/nccl.h b/tools/topo_expl/include/nccl.h
|
||||
index 729561b..4e4bdd9 100644
|
||||
--- a/tools/topo_expl/include/nccl.h
|
||||
+++ b/tools/topo_expl/include/nccl.h
|
||||
@@ -35,7 +35,7 @@ typedef struct ncclComm* ncclComm_t;
|
||||
#define NCCL_COMM_NULL NULL
|
||||
|
||||
#define NCCL_UNIQUE_ID_BYTES 128
|
||||
-typedef struct { char internal[NCCL_UNIQUE_ID_BYTES]; } ncclUniqueId;
|
||||
+typedef struct alignas(int64_t) { char internal[NCCL_UNIQUE_ID_BYTES]; } ncclUniqueId;
|
||||
|
||||
/*! @brief Error type */
|
||||
typedef enum { ncclSuccess = 0,
|
||||
@@ -1,89 +0,0 @@
|
||||
diff --git a/rocm_smi-backward-compat.cmake b/rocm_smi-backward-compat.cmake
|
||||
index aa8fd9c..59afce5 100644
|
||||
--- a/rocm_smi-backward-compat.cmake
|
||||
+++ b/rocm_smi-backward-compat.cmake
|
||||
@@ -72,7 +72,12 @@ function(generate_wrapper_header)
|
||||
set(include_guard "${include_guard}COMGR_WRAPPER_INCLUDE_${INC_GAURD_NAME}_H")
|
||||
#set #include statement
|
||||
get_filename_component(file_name ${header_file} NAME)
|
||||
- set(include_statements "${include_statements}#include \"../../../${CMAKE_INSTALL_INCLUDEDIR}/${ROCM_SMI}/${file_name}\"\n")
|
||||
+ if(IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
+ set(include_dir "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
+ else()
|
||||
+ set(include_dir "../../../${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
+ endif()
|
||||
+ set(include_statements "${include_statements}#include \"${include_dir}/${ROCM_SMI}/${file_name}\"\n")
|
||||
configure_file(${RSMI_WRAPPER_DIR}/header.hpp.in ${RSMI_WRAPPER_INC_DIR}/${file_name})
|
||||
unset(include_guard)
|
||||
unset(include_statements)
|
||||
@@ -90,7 +95,12 @@ function(generate_wrapper_header)
|
||||
set(include_guard "${include_guard}COMGR_WRAPPER_INCLUDE_${INC_GAURD_NAME}_H")
|
||||
#set #include statement
|
||||
get_filename_component(file_name ${header_file} NAME)
|
||||
- set(include_statements "${include_statements}#include \"../../../${CMAKE_INSTALL_INCLUDEDIR}/${OAM_TARGET_NAME}/${file_name}\"\n")
|
||||
+ if(IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
+ set(include_dir "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
+ else()
|
||||
+ set(include_dir "../../../${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
+ endif()
|
||||
+ set(include_statements "${include_statements}#include \"${include_dir}/${OAM_TARGET_NAME}/${file_name}\"\n")
|
||||
configure_file(${RSMI_WRAPPER_DIR}/header.hpp.in ${OAM_WRAPPER_INC_DIR}/${file_name})
|
||||
unset(include_guard)
|
||||
unset(include_statements)
|
||||
@@ -123,11 +133,16 @@ function(create_library_symlink)
|
||||
set(library_files "${LIB_RSMI}")
|
||||
endif()
|
||||
|
||||
+ if(IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR})
|
||||
+ set(install_libdir "${CMAKE_INSTALL_LIBDIR}")
|
||||
+ else()
|
||||
+ set(install_libdir "../../${CMAKE_INSTALL_LIBDIR}")
|
||||
+ endif()
|
||||
foreach(file_name ${library_files})
|
||||
add_custom_target(link_${file_name} ALL
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||
- ../../${CMAKE_INSTALL_LIBDIR}/${file_name} ${RSMI_WRAPPER_LIB_DIR}/${file_name})
|
||||
+ ${install_libdir}/${file_name} ${RSMI_WRAPPER_LIB_DIR}/${file_name})
|
||||
endforeach()
|
||||
|
||||
file(MAKE_DIRECTORY ${OAM_WRAPPER_LIB_DIR})
|
||||
@@ -151,11 +166,16 @@ function(create_library_symlink)
|
||||
set(library_files "${LIB_OAM}")
|
||||
endif()
|
||||
|
||||
+ if(IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR})
|
||||
+ set(install_libdir "${CMAKE_INSTALL_LIBDIR}")
|
||||
+ else()
|
||||
+ set(install_libdir "../../${CMAKE_INSTALL_LIBDIR}")
|
||||
+ endif()
|
||||
foreach(file_name ${library_files})
|
||||
add_custom_target(link_${file_name} ALL
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||
- ../../${CMAKE_INSTALL_LIBDIR}/${file_name} ${OAM_WRAPPER_LIB_DIR}/${file_name})
|
||||
+ ${install_libdir}/${file_name} ${OAM_WRAPPER_LIB_DIR}/${file_name})
|
||||
endforeach()
|
||||
|
||||
endfunction()
|
||||
diff --git a/rocm_smi/CMakeLists.txt b/rocm_smi/CMakeLists.txt
|
||||
index c594eeb..d3ed39d 100755
|
||||
--- a/rocm_smi/CMakeLists.txt
|
||||
+++ b/rocm_smi/CMakeLists.txt
|
||||
@@ -105,10 +105,15 @@ endif ()
|
||||
#file reorganization changes
|
||||
#rocm_smi.py moved to libexec/rocm_smi. so creating rocm-smi symlink
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
||||
+if(IS_ABSOLUTE ${CMAKE_INSTALL_LIBEXECDIR})
|
||||
+ set(install_libexecdir "${CMAKE_INSTALL_LIBEXECDIR}")
|
||||
+else()
|
||||
+ set(install_libexecdir "../${CMAKE_INSTALL_LIBEXECDIR}")
|
||||
+endif()
|
||||
add_custom_target(link-rocm-smi ALL
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||
- ../${CMAKE_INSTALL_LIBEXECDIR}/${ROCM_SMI}/rocm_smi.py ${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi)
|
||||
+ ${install_libexecdir}/${ROCM_SMI}/rocm_smi.py ${CMAKE_CURRENT_BINARY_DIR}/bin/rocm-smi)
|
||||
|
||||
## Add the install directives for the runtime library.
|
||||
install(TARGETS ${ROCM_SMI_TARGET}
|
||||
+2
-7
@@ -21,12 +21,12 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "amdsmi";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rocm";
|
||||
repo = "amdsmi";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-9O29O4HGkQxFDglAhHKv5KWA7p97RwMGG2x/fkOS2jE=";
|
||||
hash = "sha256-1xQD68mrG1g9Bpw5/vxn+XxDM5HuAyEHyALyBixqR1s=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -43,11 +43,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "esmi-to-tag-4.2.patch";
|
||||
url = "https://github.com/ROCm/amdsmi/commit/49aa2af045a4bc688e6f3ee0545f12afc45c1efe.patch";
|
||||
hash = "sha256-5dH9N4m+2mJIGVEB86SvdK3uAYyGFTfbCBJ8e09iQ3w=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "fix-build-with-gcc15.patch";
|
||||
url = "https://github.com/ROCm/amdsmi/commit/902667db3cafe72e2009287cb96b160854ab9d81.patch";
|
||||
+8
-12
@@ -38,13 +38,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "aotriton${lib.optionalString (!anySupportedTargets) "-shim"}";
|
||||
version = "0.10b";
|
||||
version = "0.11.1b";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "aotriton";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-stAHnsqChkNv69wjlhM/qUetrJpNwI1i7rGnPMwsNz0=";
|
||||
hash = "sha256-F7JjyS+6gMdCpOFLldTsNJdVzzVwd6lwW7+V8ZOZfig=";
|
||||
leaveDotGit = true;
|
||||
# fetch all submodules except unused triton submodule that is ~500MB
|
||||
postFetch = ''
|
||||
@@ -65,9 +65,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
requiredSystemFeatures = if anySupportedTargets then [ "big-parallel" ] else [ ];
|
||||
|
||||
env = {
|
||||
AOTRITON_CI_SUPPLIED_SHA1 = finalAttrs.version;
|
||||
ROCM_PATH = "${clr}";
|
||||
CFLAGS = "-w -g1 -gz -Wno-c++11-narrowing";
|
||||
CXXFLAGS = finalAttrs.env.CFLAGS;
|
||||
TRITON_STORE_BINARY_ONLY = 1; # reduce triton disk space usage
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -97,14 +99,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
triton
|
||||
]);
|
||||
|
||||
patches = [
|
||||
# CMakeLists.txt: AOTRITON_INHERIT_SYSTEM_SITE_TRITON flag
|
||||
(fetchpatch {
|
||||
url = "https://github.com/ROCm/aotriton/commit/9734c3e999c412a07d2b35671998650942b26ed4.patch";
|
||||
hash = "sha256-tBmjjhRJmLv3K6F2+4OcMuwf8dH7efPPECMQjh6QdUA=";
|
||||
})
|
||||
];
|
||||
|
||||
# Excerpt from README:
|
||||
# Note: do not run ninja separately, due to the limit of the current build system,
|
||||
# ninja install will run the whole build process unconditionally.
|
||||
@@ -126,8 +120,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# picked if nix-shell is used against this package
|
||||
preConfigure = ''
|
||||
cmakeFlagsArray+=(
|
||||
"-DVENV_DIR=$(pwd)/aotriton-venv/"
|
||||
"-DVENV_BIN_PYTHON=$(pwd)/aotriton-venv/bin/python"
|
||||
"-DVENV_DIR=$(pwd)/build/venv/"
|
||||
"-DVENV_BIN_PYTHON=$(pwd)/build/venv/bin/python"
|
||||
)
|
||||
'';
|
||||
|
||||
@@ -136,6 +130,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
(lib.cmakeBool "AOTRITON_NOIMAGE_MODE" (!anySupportedTargets))
|
||||
# Use preinstalled triton from our python's site-packages
|
||||
(lib.cmakeBool "AOTRITON_INHERIT_SYSTEM_SITE_TRITON" true)
|
||||
# Circular dependency
|
||||
(lib.cmakeBool "AOTRITON_USE_TORCH" false)
|
||||
# FP32 kernels are optional, turn them off to speed up builds and save space
|
||||
# Perf sensitive code should be using BF16 or F16
|
||||
(lib.cmakeBool "AOTRITON_ENABLE_FP32_INPUTS" false)
|
||||
+3
-5
@@ -8,15 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "aqlprofile";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
# TODO: Will move to rocm-systems repo and have proper tags in 7.x
|
||||
# pinned to oddly named tag for now
|
||||
owner = "ROCm";
|
||||
repo = "aqlprofile";
|
||||
tag = "rocm-42";
|
||||
hash = "sha256-avL78ZfB+rJ1TYaejSUzU6i5L9JeMawMwIxaTQINQdE=";
|
||||
tag = "rocm-7.0.2";
|
||||
hash = "sha256-A17SAkEUf3yAGwvZUWSdL7Tn5YAXB0YlD3T1DLTjDSg=";
|
||||
};
|
||||
|
||||
env.CXXFLAGS = "-DROCP_LD_AQLPROFILE=1";
|
||||
+34
-18
@@ -70,7 +70,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "clr";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -84,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "clr";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-DOAAuC9TN1//v56GXyUMJwQHgOuctC+WsC5agrgL+QM=";
|
||||
hash = "sha256-zajb/iTtF/ECRScdcQ85HPgq8DdIGqSinJoVyyi89bw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -148,24 +148,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
./cmake-find-x11-libgl.patch
|
||||
(fetchpatch {
|
||||
# [PATCH] improve rocclr isa compatibility check
|
||||
sha256 = "sha256-oj1loBEuqzuMihOKoN0wR92Wo25AshN5MpBuTq/9TMw=";
|
||||
url = "https://github.com/GZGavinZhao/clr/commit/f675b9b46d9f7bb8e003f4f47f616fa86a0b7a5e.patch";
|
||||
sha256 = "sha256-/QpB3Wqdhcq6lzyO/zOWzwQC0oYpesCICxnVx5CqbWg=";
|
||||
url = "https://github.com/GZGavinZhao/clr/commit/733ee38ef8ad5c84926970981821f446dfcb00af.patch";
|
||||
})
|
||||
(fetchpatch {
|
||||
# [PATCH] improve hipamd isa compatibility check
|
||||
sha256 = "sha256-E3ERoVjUVWCiYHuE1GaVY5jMrAVx3B1cAVHM4/HPuaQ=";
|
||||
url = "https://github.com/GZGavinZhao/clr/commit/aec0fc56ee2d10a2bc269c418fa847da2ee9969a.patch";
|
||||
})
|
||||
(fetchpatch {
|
||||
# [PATCH] SWDEV-507104 - Removes alignment requirement for Semaphore class to resolve runtime misaligned memory issues
|
||||
sha256 = "sha256-nStJ22B/CM0fzQTvYjbHDbQt0GlE8DXxVK+UDU9BAx4=";
|
||||
url = "https://github.com/ROCm/clr/commit/21d764518363d74187deaef2e66c1a127bc5aa64.patch";
|
||||
})
|
||||
(fetchpatch {
|
||||
# CMake 4 compat
|
||||
# [PATCH] SWDEV-509213 - make cmake_minimum_required consistent across clr
|
||||
url = "https://github.com/ROCm/clr/commit/fcaefe97b862afe12aaac0147f1004e6dc595fce.patch";
|
||||
hash = "sha256-hRZXbASbIOOETe+T4mDyyiRWLXd6RDKRieN2ns1w/rs=";
|
||||
sha256 = "sha256-FvZInw8PqB68ePxAGu45cWT/whD1xmprIA5wZb5OLcE=";
|
||||
url = "https://github.com/GZGavinZhao/clr/commit/1f0b54ee9b0de08f4dc8cd38b6728928b180048a.patch";
|
||||
})
|
||||
];
|
||||
|
||||
@@ -198,7 +187,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
cp ${amdclang}/bin/* $out/bin/
|
||||
cp ${amdclangxx}/bin/* $out/bin/
|
||||
|
||||
for prog in hip{cc,config}{,.pl}; do
|
||||
for prog in hip{cc,config}; do
|
||||
wrapProgram $out/bin/$prog ${lib.concatStringsSep " " wrapperArgs}
|
||||
done
|
||||
|
||||
@@ -280,6 +269,33 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
opencl-example = callPackage ./test-opencl-example.nix {
|
||||
clr = finalAttrs.finalPackage;
|
||||
};
|
||||
generic-arch = callPackage ./test-isa-compat.nix {
|
||||
clr = finalAttrs.finalPackage;
|
||||
name = "generic-arch";
|
||||
offloadArches = [
|
||||
"gfx9-generic"
|
||||
"gfx10-1-generic"
|
||||
"gfx10-3-generic"
|
||||
"gfx11-generic"
|
||||
"gfx12-generic"
|
||||
];
|
||||
};
|
||||
isa-compat = callPackage ./test-isa-compat.nix {
|
||||
clr = finalAttrs.finalPackage;
|
||||
name = "isa-compat";
|
||||
offloadArches = [
|
||||
"gfx900"
|
||||
"gfx1010"
|
||||
"gfx1030"
|
||||
];
|
||||
};
|
||||
spirv = callPackage ./test-isa-compat.nix {
|
||||
clr = finalAttrs.finalPackage;
|
||||
name = "spirv";
|
||||
offloadArches = [
|
||||
"amdgcnspirv"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
selectGpuTargets =
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
makeImpureTest,
|
||||
fetchFromGitHub,
|
||||
clr,
|
||||
rocm-smi,
|
||||
name,
|
||||
offloadArches,
|
||||
}:
|
||||
|
||||
let
|
||||
# TODO: swap to another tiny test if this breaks; upstream is archived but fine for now
|
||||
vectoradd = stdenv.mkDerivation {
|
||||
pname = "rocm-hip-vectoradd";
|
||||
version = "2024-04-11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "HIP-Examples";
|
||||
rev = "cdf9d101acd9a3fc89ee750f73c1f1958cbd5cc3";
|
||||
hash = "sha256-/I1KmOBFbEZIjA1vRE+2tPTtEKtOgazjCbnZtr+87E0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
clr
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/bin
|
||||
amdclang++ -x hip -o $out/bin/vectoradd \
|
||||
${lib.concatMapStringsSep " " (arch: "--offload-arch=${arch}") offloadArches} \
|
||||
vectorAdd/vectoradd_hip.cpp
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "vectorAdd HIP example for ROCm";
|
||||
homepage = "https://github.com/ROCm/HIP-Examples";
|
||||
license = lib.licenses.unfree;
|
||||
platforms = lib.platforms.linux;
|
||||
teams = [ lib.teams.rocm ];
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
makeImpureTest {
|
||||
inherit name;
|
||||
testedPackage = "rocmPackages.clr";
|
||||
|
||||
sandboxPaths = [
|
||||
"/sys"
|
||||
"/dev/dri"
|
||||
"/dev/kfd"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
vectoradd
|
||||
rocm-smi
|
||||
];
|
||||
|
||||
testScript = ''
|
||||
rocm-smi
|
||||
|
||||
vectoradd
|
||||
'';
|
||||
|
||||
meta = {
|
||||
teams = [ lib.teams.rocm ];
|
||||
};
|
||||
}
|
||||
+1
-1
@@ -61,7 +61,7 @@ let
|
||||
in
|
||||
makeImpureTest {
|
||||
name = "opencl-example";
|
||||
testedPackage = "rocmPackages_6.clr";
|
||||
testedPackage = "rocmPackages.clr";
|
||||
|
||||
sandboxPaths = [
|
||||
"/sys"
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
|
||||
makeImpureTest {
|
||||
name = "rocm-smi";
|
||||
testedPackage = "rocmPackages_6.clr";
|
||||
testedPackage = "rocmPackages.clr";
|
||||
nativeBuildInputs = [
|
||||
clinfo
|
||||
rocm-smi
|
||||
+23
-28
@@ -15,6 +15,11 @@
|
||||
zstd,
|
||||
buildTests ? false,
|
||||
buildExamples ? false,
|
||||
# limits prebuilt kernel selection to those needed for MIOPEN (currently "*conv*")
|
||||
# Other kernels can still be used if treating CK as a header only library
|
||||
# and building specific instances, as done with ck4inductor/torch
|
||||
miOpenReqLibsOnly ? true,
|
||||
withDeprecatedKernels ? false,
|
||||
gpuTargets ? (
|
||||
clr.localGpuTargets or [
|
||||
"gfx900"
|
||||
@@ -22,20 +27,14 @@
|
||||
"gfx908"
|
||||
"gfx90a"
|
||||
"gfx942"
|
||||
"gfx1030"
|
||||
"gfx1100"
|
||||
"gfx1101"
|
||||
"gfx1102"
|
||||
"gfx1200"
|
||||
"gfx1201"
|
||||
"gfx950"
|
||||
"gfx10-3-generic"
|
||||
"gfx11-generic"
|
||||
"gfx12-generic"
|
||||
]
|
||||
),
|
||||
}:
|
||||
|
||||
# TODO: in 7.x CK is likely to gain support for
|
||||
# a) miopen kernel only build (MIOPEN_REQ_LIBS_ONLY)
|
||||
# b) header only build (useful for torch) https://github.com/ROCm/composable_kernel/issues/2030
|
||||
# that will likely allow us to get rid of this complicated split part build!
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
preBuild = ''
|
||||
echo "This derivation isn't intended to be built directly and only exists to be overridden and built in chunks";
|
||||
@@ -43,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
pname = "composable_kernel_base";
|
||||
version = "6.4-unstable-2025-05-22";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -58,9 +57,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "composable_kernel";
|
||||
# Using a dev snapshot, trying to get MIOpen to work
|
||||
rev = "bc2551ac3b27edc31f20863e3a873508fb73aad2";
|
||||
hash = "sha256-bfmwbgR1ya+zkME3wOyaZX/e+1+ie0sSlugK/kozLsI=";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-Wql7PD3kg85AFXn7UaTKxhURyDPfVe/OUbR+udrqDc8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -87,10 +85,14 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
env.ROCM_PATH = clr;
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "MIOPEN_REQ_LIBS_ONLY" miOpenReqLibsOnly)
|
||||
(lib.cmakeBool "BUILD_MHA_LIB" (!miOpenReqLibsOnly))
|
||||
(lib.cmakeBool "DISABLE_DL_KERNELS" true)
|
||||
(lib.cmakeBool "DISABLE_DPP_KERNELS" true)
|
||||
(lib.cmakeBool "CK_TIME_KERNEL" false)
|
||||
"-DCMAKE_MODULE_PATH=${clr}/hip/cmake"
|
||||
"-DCMAKE_BUILD_TYPE=Release"
|
||||
"-DCMAKE_POLICY_DEFAULT_CMP0069=NEW"
|
||||
# "-DDL_KERNELS=ON" # Not needed, slow to build
|
||||
"-DDL_KERNELS=OFF"
|
||||
# CK_USE_CODEGEN Required for migraphx which uses device_gemm_multiple_d.hpp
|
||||
# but migraphx requires an incompatible fork of CK and fails anyway
|
||||
# "-DCK_USE_CODEGEN=ON"
|
||||
@@ -122,11 +124,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"-DGOOGLETEST_DIR=${gtest.src}" # Custom linker names
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Significant build performance improvement
|
||||
./avoid-extra-host-compile.patch
|
||||
];
|
||||
|
||||
# No flags to build selectively it seems...
|
||||
postPatch =
|
||||
# Reduce configure time by preventing thousands of clang-tidy targets being added
|
||||
@@ -139,12 +136,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
--replace-fail "add_subdirectory(profiler)" ""
|
||||
substituteInPlace cmake/EnableCompilerWarnings.cmake \
|
||||
--replace-fail "-Werror" ""
|
||||
|
||||
# Apply equivalent change to https://github.com/ROCm/composable_kernel/pull/2564
|
||||
# TODO: Remove after ROCm 7.1
|
||||
find include/ck/tensor_operation/ -type f -name "*.hpp" -exec sed -i \
|
||||
-e 's/!defined(__HIP_DEVICE_COMPILE__)/false/g' \
|
||||
{} +
|
||||
''
|
||||
+ lib.optionalString (!withDeprecatedKernels) ''
|
||||
substituteInPlace include/ck/ck.hpp \
|
||||
--replace-fail "CK_BUILD_DEPRECATED 1" "CK_BUILD_DEPRECATED 0"
|
||||
''
|
||||
# Optionally remove tests
|
||||
+ lib.optionalString (!buildTests) ''
|
||||
@@ -170,7 +165,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit gpuTargets;
|
||||
inherit gpuTargets miOpenReqLibsOnly;
|
||||
updateScript = rocmUpdateScript {
|
||||
name = finalAttrs.pname;
|
||||
inherit (finalAttrs.src) owner;
|
||||
+1
-2
@@ -14,8 +14,7 @@ buildPythonPackage {
|
||||
setuptools
|
||||
setuptools-scm
|
||||
];
|
||||
version = "6.4.3";
|
||||
inherit (composable_kernel) src;
|
||||
inherit (composable_kernel) version src;
|
||||
pythonImportsCheck = [
|
||||
"ck4inductor"
|
||||
"ck4inductor.universal_gemm.gen_instances"
|
||||
+31
-4
@@ -5,8 +5,10 @@
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (composable_kernel_base) miOpenReqLibsOnly;
|
||||
parts = {
|
||||
_mha = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
# mha takes ~3hrs on 64 cores on an EPYC milan system at ~2.5GHz
|
||||
# big-parallel builders are one gen newer and clocked ~30% higher but only 24 cores
|
||||
# Should be <10h timeout but might be cutting it close
|
||||
@@ -20,6 +22,7 @@ let
|
||||
extraCmakeFlags = [ "-DHIP_CLANG_NUM_PARALLEL_JOBS=2" ];
|
||||
};
|
||||
gemm_multiply_multiply = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
targets = [
|
||||
"device_gemm_multiply_multiply_instance"
|
||||
];
|
||||
@@ -30,6 +33,7 @@ let
|
||||
];
|
||||
};
|
||||
gemm_multiply_multiply_wp = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
targets = [
|
||||
"device_gemm_multiply_multiply_wp_instance"
|
||||
];
|
||||
@@ -50,7 +54,8 @@ let
|
||||
targets = [
|
||||
"device_grouped_conv1d_fwd_instance"
|
||||
"device_grouped_conv2d_fwd_instance"
|
||||
"device_grouped_conv2d_fwd_bias_relu_instance"
|
||||
"device_grouped_conv2d_fwd_bias_clamp_instance"
|
||||
"device_grouped_conv2d_fwd_clamp_instance"
|
||||
"device_grouped_conv2d_fwd_dynamic_op_instance"
|
||||
];
|
||||
};
|
||||
@@ -71,7 +76,8 @@ let
|
||||
grouped_conv_fwd_3d1 = {
|
||||
targets = [
|
||||
"device_grouped_conv3d_fwd_instance"
|
||||
"device_grouped_conv3d_fwd_bias_relu_instance"
|
||||
"device_grouped_conv3d_fwd_clamp_instance"
|
||||
"device_grouped_conv3d_fwd_bias_clamp_instance"
|
||||
"device_grouped_conv3d_fwd_bilinear_instance"
|
||||
"device_grouped_conv3d_fwd_convinvscale_instance"
|
||||
"device_grouped_conv3d_fwd_convscale_instance"
|
||||
@@ -87,7 +93,13 @@ let
|
||||
"device_grouped_conv3d_fwd_scaleadd_scaleadd_relu_instance"
|
||||
];
|
||||
};
|
||||
grouped_conv_fwd_nd = {
|
||||
targets = [
|
||||
"device_grouped_convnd_bwd_weight_instance"
|
||||
];
|
||||
};
|
||||
batched_gemm1 = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
targets = [
|
||||
"device_batched_gemm_instance"
|
||||
"device_batched_gemm_b_scale_instance"
|
||||
@@ -100,6 +112,7 @@ let
|
||||
];
|
||||
};
|
||||
batched_gemm2 = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
targets = [
|
||||
"device_batched_gemm_softmax_gemm_permute_instance"
|
||||
"device_grouped_gemm_instance"
|
||||
@@ -111,18 +124,21 @@ let
|
||||
];
|
||||
};
|
||||
gemm_universal1 = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
targets = [
|
||||
"device_gemm_universal_instance"
|
||||
"device_gemm_universal_batched_instance"
|
||||
];
|
||||
};
|
||||
gemm_universal2 = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
targets = [
|
||||
"device_gemm_universal_reduce_instance"
|
||||
"device_gemm_universal_streamk_instance"
|
||||
];
|
||||
};
|
||||
gemm_other1 = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
targets = [
|
||||
"device_gemm_instance"
|
||||
"device_gemm_b_scale_instance"
|
||||
@@ -135,6 +151,7 @@ let
|
||||
];
|
||||
};
|
||||
gemm_other2 = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
targets = [
|
||||
"device_gemm_add_relu_add_layernorm_instance"
|
||||
"device_gemm_add_silu_instance"
|
||||
@@ -159,6 +176,7 @@ let
|
||||
];
|
||||
};
|
||||
pool = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
targets = [
|
||||
"device_avg_pool2d_bwd_instance"
|
||||
"device_avg_pool3d_bwd_instance"
|
||||
@@ -167,7 +185,13 @@ let
|
||||
"device_max_pool_bwd_instance"
|
||||
];
|
||||
};
|
||||
other0 = {
|
||||
targets = [
|
||||
"device_quantization_instance"
|
||||
];
|
||||
};
|
||||
other1 = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
targets = [
|
||||
"device_batchnorm_instance"
|
||||
"device_contraction_bilinear_instance"
|
||||
@@ -177,15 +201,16 @@ let
|
||||
];
|
||||
};
|
||||
other2 = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
targets = [
|
||||
"device_column_to_image_instance"
|
||||
"device_image_to_column_instance"
|
||||
"device_permute_scale_instance"
|
||||
"device_quantization_instance"
|
||||
"device_reduce_instance"
|
||||
];
|
||||
};
|
||||
other3 = {
|
||||
enabled = !miOpenReqLibsOnly;
|
||||
targets = [
|
||||
"device_normalization_bwd_data_instance"
|
||||
"device_normalization_bwd_gamma_beta_instance"
|
||||
@@ -201,11 +226,13 @@ let
|
||||
targets,
|
||||
extraCmakeFlags ? [ ],
|
||||
requiredSystemFeatures ? [ "big-parallel" ],
|
||||
enabled ? true,
|
||||
onlyFor ? [ ],
|
||||
}:
|
||||
let
|
||||
supported =
|
||||
onlyFor == [ ] || (lib.lists.intersectLists composable_kernel_base.gpuTargets onlyFor) != [ ];
|
||||
enabled
|
||||
&& (onlyFor == [ ] || (lib.lists.intersectLists composable_kernel_base.gpuTargets onlyFor) != [ ]);
|
||||
in
|
||||
if supported then
|
||||
(composable_kernel_base.overrideAttrs (old: {
|
||||
+1
@@ -213,6 +213,7 @@ let
|
||||
ucx = prev.ucx.override {
|
||||
enableCuda = false;
|
||||
enableRocm = true;
|
||||
rocmPackages = self;
|
||||
};
|
||||
in
|
||||
{
|
||||
+2
-2
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "half";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "half";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-H8Ogm4nxaxDB0WHx+KhRjUO3vzp3AwCqrIQ6k8R+xkc=";
|
||||
hash = "sha256-If9O5BEeymsLN+C0drZsPSxEWXpJTxeDBGNHNXSumm4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-2
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hip-common";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "HIP";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-B4Gc119iff3ak9tmpz3rUJBtCk5T1AA8z67K9PshTLQ=";
|
||||
hash = "sha256-9VQrCed5EKVXu41Qrnf2m2jXveWt5Y/SlSxlUmjZS0M=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
+2
-2
@@ -8,13 +8,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hipblas-common";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "hipBLAS-common";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-eTwoAXH2HGdSAOLTZHJUFHF+c2wWHixqeMqr60KxJrc=";
|
||||
hash = "sha256-NXSMVtfjei4vIjU9y4o3Px/fplq7C7ziY1R8YqnY2LQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-13
@@ -2,7 +2,6 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
fetchpatch,
|
||||
rocmUpdateScript,
|
||||
cmake,
|
||||
rocm-cmake,
|
||||
@@ -25,7 +24,7 @@
|
||||
# Can also use cuBLAS
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hipblas";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -44,19 +43,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "hipBLAS";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-lQv8Ik6+0ldqyeJ05CSGB0309nIpzlRL3CRYeQxVfd0=";
|
||||
hash = "sha256-SoszZBbk8sM3yjgahs1UrPCsEbGmTYTpdOw+Ah/z8H8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# Subject: [PATCH] Add gfx1150, gfx1150, gfx1200, gfx1201 support (#1055)
|
||||
# This was merged to release/rocm-rel-6.4 but AMD forgot to tag it for 6.4.3
|
||||
name = "release-6.4-arch-extra.patch";
|
||||
url = "https://github.com/ROCm/hipBLAS/commit/0100b32ccff9a0f12134694315b4e44884e25a8e.patch";
|
||||
hash = "sha256-BmktlLJpYaTcogHzEKpZdCnksIIysEO47WMezXoxvCs=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace library/CMakeLists.txt \
|
||||
--replace-fail "find_package(Git REQUIRED)" ""
|
||||
+1
-1
@@ -70,7 +70,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hipblaslt${clr.gpuArchSuffix}";
|
||||
version = "6.5-unstable-2025-08-21";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
-6
@@ -23,12 +23,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
llvm.clang-unwrapped
|
||||
];
|
||||
|
||||
patches = [
|
||||
# https://github.com/ROCm/llvm-project/pull/183
|
||||
# Fixes always-invoked UB in hipcc
|
||||
./0001-hipcc-Remove-extra-definition-of-hipBinUtilPtr_-in-d.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/hipBin_amd.h \
|
||||
--replace-fail "/usr/bin/lsb_release" "${lsb-release}/bin/lsb_release"
|
||||
+2
-2
@@ -17,7 +17,7 @@
|
||||
# CUB can also be used as a backend instead of rocPRIM.
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hipcub";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "hipCUB";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-yRJxhYFZYiKNR2xrn5fif/+vjHKKcKdn0JKPi972g+0=";
|
||||
hash = "sha256-Vx9h/DTZo7RfQrflVwXOCKiA7rt6dQQw/P/bllgtq8w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-2
@@ -21,7 +21,7 @@
|
||||
# Can also use cuFFT
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hipfft";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "hipFFT";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-4W93OOKTqNteoQ4GKycr06cjvGy5NF7RR08F+rfn+0o=";
|
||||
hash = "sha256-cozwHUlqACq0IM3YToc/xFB694DJ3rPiEPUCTo0xuHY=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
+2
-2
@@ -11,13 +11,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hipfort";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "hipfort";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-Nks1+0X8bLtZ9HqZXJOtrAWQlJquMH+feuu1stf/9Vo=";
|
||||
hash = "sha256-s/VOaU5IKZYH0Vhtjl/UZTrnpLsJ7zWFTvAJY2x3AcA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
+4
-2
@@ -12,13 +12,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hipify";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "HIPIFY";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-uj25WmGCpwouS1yzW9Oil5Vyrbyj5yRITvWF9WaGozM=";
|
||||
hash = "sha256-xcWUYfZvbTHs4BvDiXAOLONfLiCq9uEGOHSK/hOWg7c=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
@@ -52,10 +52,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
};
|
||||
|
||||
postInstall = ''
|
||||
rm $out/bin/hipify-perl
|
||||
chmod +x $out/bin/*
|
||||
chmod +x $out/libexec/*
|
||||
patchShebangs $out/bin/
|
||||
patchShebangs $out/libexec/
|
||||
ln -s $out/{libexec/hipify,bin}/hipify-perl
|
||||
'';
|
||||
|
||||
meta = {
|
||||
+2
-2
@@ -14,7 +14,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hiprand";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "hipRAND";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-f/AWDV7vkjt8BnjhLwT2m1Y6dlZy054+z6J0UW9Glg8=";
|
||||
hash = "sha256-yOLdFQ4/OGGfX75A/ElY1xD+4nkcqT8tZx2bQZgXTx4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-5
@@ -9,17 +9,16 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hiprt";
|
||||
version = "2.5.a21e075.3";
|
||||
version = "3.0.3.a1525e7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "GPUOpen-LibrariesAndSDKs";
|
||||
repo = "HIPRT";
|
||||
tag = finalAttrs.version;
|
||||
sha256 = "sha256-3yGhwIsFHlFMCEzuYnXuXNzs99m7f2LTkYaTGs0GEcI=";
|
||||
hash = "sha256-7r7KO+WuXOeQQhYLYpJRrD4ZqVsBOqaD2NGD15CWnoo=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
rm -rf contrib/easy-encrypt # contains prebuilt easy-encrypt binaries, we disable encryption
|
||||
substituteInPlace contrib/Orochi/contrib/hipew/src/hipew.cpp --replace-fail '"/opt/rocm/hip/lib/' '"${clr}/lib'
|
||||
substituteInPlace hiprt/hiprt_libpath.h --replace-fail '"/opt/rocm/hip/lib/' '"${clr}/lib/'
|
||||
'';
|
||||
@@ -40,8 +39,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
(lib.cmakeBool "PRECOMPILE" true)
|
||||
# needs accelerator
|
||||
(lib.cmakeBool "NO_UNITTEST" true)
|
||||
# we have no need to support baking encrypted kernels into object files
|
||||
(lib.cmakeBool "NO_ENCRYPT" true)
|
||||
(lib.cmakeBool "FORCE_DISABLE_CUDA" true)
|
||||
];
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@
|
||||
# Can also use cuSOLVER
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hipsolver";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "hipSOLVER";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-YP88fSM27Do0/tZ676Pvv2tr+lnlQa4vr3UnVNaVpLA=";
|
||||
hash = "sha256-IZAVdu+VpSrJ/EZXymOzvrGnRLBpxUgVeaj1U+ux02M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-2
@@ -19,7 +19,7 @@
|
||||
# This can also use cuSPARSE as a backend instead of rocSPARSE
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "hipsparse";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "hipSPARSE";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-fbh9fKlzxuIBTeCV/bEQbUS3lO6O3KoGF7/tTqRaCpE=";
|
||||
hash = "sha256-hfC+QsOfDNKIZROgTZZsGbAG0yghc27PyVwCDr8MEJ8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+12
-52
@@ -2,7 +2,7 @@
|
||||
lib,
|
||||
stdenv,
|
||||
# LLVM version closest to ROCm fork to override
|
||||
llvmPackages_19,
|
||||
llvmPackages_20,
|
||||
overrideCC,
|
||||
lndir,
|
||||
rocm-device-libs,
|
||||
@@ -11,7 +11,6 @@
|
||||
symlinkJoin,
|
||||
rdfind,
|
||||
zstd,
|
||||
zlib,
|
||||
gcc-unwrapped,
|
||||
glibc,
|
||||
replaceVars,
|
||||
@@ -34,12 +33,12 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
# major version of this should be the clang version ROCm forked from
|
||||
rocmLlvmVersion = "19.0.0-rocm";
|
||||
rocmLlvmVersion = "20.0.0-rocm";
|
||||
# llvmPackages_base version should match rocmLlvmVersion
|
||||
# so libllvm's bitcode is compatible with the built toolchain
|
||||
llvmPackages_base = llvmPackages_19;
|
||||
llvmPackages_base = llvmPackages_20;
|
||||
llvmPackagesNoBintools = llvmPackages_base.override {
|
||||
bootBintools = null;
|
||||
bootBintoolsNoLibc = null;
|
||||
@@ -116,7 +115,7 @@ let
|
||||
owner = "ROCm";
|
||||
repo = "llvm-project";
|
||||
rev = "rocm-${version}";
|
||||
hash = "sha256-12ftH5fMPAsbcEBmhADwW1YY/Yxo/MAK1FafKczITMg=";
|
||||
hash = "sha256-gJlDFbCRsiwHgRzmwm36C3WvGfWwgPrtBNUHYmZHTB8=";
|
||||
};
|
||||
llvmMajorVersion = lib.versions.major rocmLlvmVersion;
|
||||
# An llvmPackages (pkgs/development/compilers/llvm/) built from ROCm LLVM's source tree
|
||||
@@ -229,9 +228,8 @@ let
|
||||
commonCmakeFlags = [
|
||||
llvmTargetsFlag
|
||||
# Compression support is required for compressed offload kernels
|
||||
# Set FORCE_ON so that failure to find the compression libs will be a build error
|
||||
# Set FORCE_ON so that failure to find the compression lib will be a build error
|
||||
(lib.cmakeFeature "LLVM_ENABLE_ZSTD" "FORCE_ON")
|
||||
(lib.cmakeFeature "LLVM_ENABLE_ZLIB" "FORCE_ON")
|
||||
# required for threaded ThinLTO to work
|
||||
(lib.cmakeBool "LLVM_ENABLE_THREADS" true)
|
||||
# LLVM tries to call git to embed VCS info if FORCE_VC_ aren't set
|
||||
@@ -271,6 +269,7 @@ let
|
||||
"-g1"
|
||||
]
|
||||
);
|
||||
inherit (llvmPackagesRocm) libcxx;
|
||||
in
|
||||
overrideLlvmPackagesRocm (s: {
|
||||
libllvm = (s.prev.libllvm.override { }).overrideAttrs (old: {
|
||||
@@ -282,13 +281,6 @@ overrideLlvmPackagesRocm (s: {
|
||||
hash = "sha256-yly93PvGIXOnFeDGZ2W+W6SyhdWFM6iwA+qOeaptrh0=";
|
||||
relative = "llvm";
|
||||
})
|
||||
(fetchpatch {
|
||||
# fix tools/llvm-exegesis/X86/latency/ failing with glibc 2.4+
|
||||
name = "exegesis-latency-glibc-fix.patch";
|
||||
sha256 = "sha256-CjKxQlYwHXTM0mVnv8k/ssg5OXuKpJxRvBZGXjrFZAg=";
|
||||
url = "https://github.com/llvm/llvm-project/commit/1e8df9e85a1ff213e5868bd822877695f27504ad.patch";
|
||||
relative = "llvm";
|
||||
})
|
||||
./perf-increase-namestring-size.patch
|
||||
# TODO: consider reapplying "Don't include aliases in RegisterClassInfo::IgnoreCSRForAllocOrder"
|
||||
# it was reverted as it's a pessimization for non-GPU archs, but this compiler
|
||||
@@ -299,7 +291,6 @@ overrideLlvmPackagesRocm (s: {
|
||||
nativeBuildInputs = old.nativeBuildInputs ++ [ removeReferencesTo ];
|
||||
buildInputs = old.buildInputs ++ [
|
||||
zstd
|
||||
zlib
|
||||
];
|
||||
preFixup = ''
|
||||
moveToOutput "lib/lib*.a" "$dev"
|
||||
@@ -329,7 +320,6 @@ overrideLlvmPackagesRocm (s: {
|
||||
];
|
||||
buildInputs = old.buildInputs ++ [
|
||||
zstd
|
||||
zlib
|
||||
];
|
||||
env = (old.env or { }) // {
|
||||
NIX_CFLAGS_COMPILE = "${(old.env or { }).NIX_CFLAGS_COMPILE or ""} ${llvmExtraCflags}";
|
||||
@@ -351,25 +341,7 @@ overrideLlvmPackagesRocm (s: {
|
||||
passthru = old.passthru // {
|
||||
inherit gcc-prefix;
|
||||
};
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
# [PATCH] [clang] Install scan-build-py into plain "lib" directory
|
||||
# Backported so 19/clang/gnu-install-dirs patch applies to AMD's LLVM fork
|
||||
hash = "sha256-bOqAjBwRKcERpQkiBpuojGs6ddd5Ht3zL5l3TuJK2w8=";
|
||||
url = "https://github.com/llvm/llvm-project/commit/816fde1cbb700ebcc8b3df81fb93d675c04c12cd.patch";
|
||||
relative = "clang";
|
||||
})
|
||||
(fetchpatch {
|
||||
# [PATCH] Reapply "[CUDA][HIP] Add a __device__ version of std::__glibcxx_assert_fail()"
|
||||
# Fix errors with gcc15
|
||||
# https://github.com/ROCm/composable_kernel/issues/2887
|
||||
hash = "sha256-liowyS6FTsDhH8mJYXsanK7GEIlXFhd68GRDf/7Y6gg=";
|
||||
url = "https://github.com/llvm/llvm-project/commit/8ec0552a7f1f50986dda6d13eae310d121d7e3ba.patch";
|
||||
relative = "clang";
|
||||
})
|
||||
]
|
||||
++ old.patches
|
||||
++ [
|
||||
patches = old.patches ++ [
|
||||
# Never add FHS include paths
|
||||
./clang-bodge-ignore-systemwide-incls.diff
|
||||
# Prevents builds timing out if a single compiler invocation is very slow but
|
||||
@@ -390,7 +362,6 @@ overrideLlvmPackagesRocm (s: {
|
||||
];
|
||||
buildInputs = old.buildInputs ++ [
|
||||
zstd
|
||||
zlib
|
||||
];
|
||||
env = (old.env or { }) // {
|
||||
NIX_CFLAGS_COMPILE = "${(old.env or { }).NIX_CFLAGS_COMPILE or ""} ${llvmExtraCflags}";
|
||||
@@ -465,20 +436,6 @@ overrideLlvmPackagesRocm (s: {
|
||||
isGNU = false;
|
||||
};
|
||||
compiler-rt-libc = s.prev.compiler-rt-libc.overrideAttrs (old: {
|
||||
patches = old.patches ++ [
|
||||
(fetchpatch {
|
||||
name = "Fix-missing-main-function-in-float16-bfloat16-support-checks.patch";
|
||||
url = "https://github.com/ROCm/llvm-project/commit/68d8b3846ab1e6550910f2a9a685690eee558af2.patch";
|
||||
hash = "sha256-Db+L1HFMWVj4CrofsGbn5lnMoCzEcU+7q12KKFb17/g=";
|
||||
relative = "compiler-rt";
|
||||
})
|
||||
(fetchpatch {
|
||||
# Fixes fortify hardening compile error related to openat usage
|
||||
hash = "sha256-pgpN1q1vIQrPXHPxNSZ6zfgV2EflHO5Amzl+2BDjXbs=";
|
||||
url = "https://github.com/llvm/llvm-project/commit/155b7a12820ec45095988b6aa6e057afaf2bc892.patch";
|
||||
relative = "compiler-rt";
|
||||
})
|
||||
];
|
||||
meta = old.meta // llvmMeta;
|
||||
});
|
||||
compiler-rt = s.final.compiler-rt-libc;
|
||||
@@ -509,11 +466,14 @@ overrideLlvmPackagesRocm (s: {
|
||||
];
|
||||
buildInputs = old.buildInputs ++ [
|
||||
clang-unwrapped
|
||||
zlib
|
||||
zstd
|
||||
libxml2
|
||||
libffi
|
||||
];
|
||||
postFixup = ''
|
||||
${old.postFixup or ""}
|
||||
ln -s $out/lib/libomp.so $dev/lib/libomp.so
|
||||
'';
|
||||
});
|
||||
# AMD has a separate MLIR impl which we package under rocmPackages.rocmlir
|
||||
# It would be an error to rely on the original mlir package from this scope
|
||||
+8
-8
@@ -59,7 +59,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "migraphx";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -75,17 +75,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "AMDMIGraphX";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-8iOBoRBygTvn9eX5f9cG0kBHKgKSeflqHkV6Qwh/ruA=";
|
||||
hash = "sha256-P3jiq6i7jpfpL9/S7mc1CiNRwAt8fzy3waHKhyuYIXI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./msgpack-6-compat.patch
|
||||
# Backport "Add quantize_bf16 to C api output"
|
||||
# Required for onnxruntime 1.23+
|
||||
(fetchpatch {
|
||||
url = "https://github.com/ROCm/AMDMIGraphX/commit/f33afac654dfc4558f4d9867c2d28a2d98cf49b4.patch";
|
||||
hash = "sha256-5O4UanmyhQ9Te830SISaquM4TdG/gEY3wfWSaU/cS30=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -159,6 +153,12 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# `error: '__clang_hip_runtime_wrapper.h' file not found [clang-diagnostic-error]`
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "set(MIGRAPHX_TIDY_ERRORS ALL)" ""
|
||||
|
||||
# Fix Unicode minus sign (U+2212) in comment that breaks EMBED_USE=CArrays
|
||||
# The embed mechanism generates char[] arrays that can't store unicode −
|
||||
# which has values >127
|
||||
substituteInPlace src/targets/gpu/kernels/include/migraphx/kernels/bit.hpp \
|
||||
--replace-fail "// popcount(~(x | −x))" "// popcount(~(x | -x))"
|
||||
''
|
||||
+ lib.optionalString (!buildDocs) ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
+3
-3
@@ -37,13 +37,13 @@
|
||||
gpuTargets ? clr.localGpuTargets or clr.gpuTargets,
|
||||
buildDocs ? false, # Needs internet because of rocm-docs-core
|
||||
buildTests ? false,
|
||||
withComposableKernel ? composable_kernel.anyMfmaTarget,
|
||||
withComposableKernel ? true,
|
||||
}:
|
||||
|
||||
let
|
||||
# FIXME: cmake files need patched to include this properly
|
||||
cFlags = "-Wno-documentation-pedantic --offload-compress -I${hipblas-common}/include -I${hipblas}/include -I${roctracer}/include -I${nlohmann_json}/include -I${sqlite.dev}/include -I${rocrand}/include";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
# Targets outside this list will get
|
||||
# error: use of undeclared identifier 'CK_BUFFER_RESOURCE_3RD_DWORD'
|
||||
@@ -69,7 +69,7 @@ let
|
||||
owner = "ROCm";
|
||||
repo = "MIOpen";
|
||||
rev = "rocm-${version}";
|
||||
hash = "sha256-DEcVj2vOwIYYyNKEKFqZ0fb9o+/QRpwiSksxwnmgEMc=";
|
||||
hash = "sha256-PJj2LzU5naAku+FOnMl+Ymad2beYYSS81/K/CR+l2UA=";
|
||||
fetchLFS = true;
|
||||
fetchSubmodules = true;
|
||||
# WORKAROUND: .lfsconfig is incorrectly set to exclude everything upstream
|
||||
+2
-2
@@ -40,13 +40,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"cpu"
|
||||
);
|
||||
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "MIVisionX";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-07MivgCYmKLnhGDjOYsFBfwIxEoQLYNoRbOo3MPpVzE=";
|
||||
hash = "sha256-SO0rE86UmX9f574ALdnnBDFceKGKTvJDQ8Lf7iSlJtA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
+4
-4
@@ -13,6 +13,7 @@
|
||||
perl,
|
||||
hipify,
|
||||
python3,
|
||||
fmt,
|
||||
gtest,
|
||||
chrpath,
|
||||
roctracer,
|
||||
@@ -39,7 +40,7 @@ in
|
||||
# infiniband ib_peer_mem support isn't in the mainline kernel but is carried by some distros
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rccl${clr.gpuArchSuffix}";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -49,8 +50,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
|
||||
patches = [
|
||||
./fix-mainline-support-and-ub.diff
|
||||
./enable-mscclpp-on-all-gfx9.diff
|
||||
./rccl-test-missing-iomanip.diff
|
||||
./fix_hw_reg_hw_id_gt_gfx10.patch
|
||||
];
|
||||
@@ -59,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "rccl";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-XpD+UjgdbAoGYK5UvvTX3f8rny4tiEDH/vYoCdZhtjo=";
|
||||
hash = "sha256-ByKz6TNdGVbh65ZH5PtgUbAj4qNVmOBmZ9SrOjkTbWU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -75,6 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
buildInputs = [
|
||||
rocm-smi
|
||||
fmt
|
||||
gtest
|
||||
roctracer
|
||||
rocprofiler
|
||||
+13
-6
@@ -4,6 +4,7 @@
|
||||
fetchFromGitHub,
|
||||
rocmUpdateScript,
|
||||
cmake,
|
||||
pkg-config,
|
||||
amdsmi,
|
||||
rocm-smi,
|
||||
rocm-runtime,
|
||||
@@ -48,7 +49,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rdc";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -64,11 +65,19 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "rdc";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-zILZPW9Lx5T+cMDqTg/zWy3ro+Nypzc9bDNTupZjt4s=";
|
||||
hash = "sha256-ztInmK3oCbvnLe7XQ55/hUHRyhuZ2M2XVTG1NcVHtGs=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/ROCm/rocm-systems/pull/2423
|
||||
./fix-cmake-cxxflags.patch
|
||||
# https://github.com/ROCm/rocm-systems/pull/2424
|
||||
./fix-libcap-pkgconfig.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
pkg-config
|
||||
protobuf
|
||||
]
|
||||
++ lib.optionals buildDocs [
|
||||
@@ -90,10 +99,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
gtest
|
||||
];
|
||||
|
||||
CXXFLAGS = "-I${libcap.dev}/include";
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_VERBOSE_MAKEFILE=OFF"
|
||||
"-DCMAKE_VERBOSE_MAKEFILE=ON"
|
||||
"-DRDC_INSTALL_PREFIX=${placeholder "out"}"
|
||||
"-DBUILD_RVS=OFF" # TODO: Needs RVS package
|
||||
"-DBUILD_ROCRTEST=ON"
|
||||
@@ -114,7 +121,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "file(STRINGS /etc/os-release LINUX_DISTRO LIMIT_COUNT 1 REGEX \"NAME=\")" "set(LINUX_DISTRO \"NixOS\")"
|
||||
--replace-fail "file(STRINGS /etc/os-release LINUX_DISTRO LIMIT_COUNT 1 REGEX \"NAME=\")" "set(LINUX_DISTRO \"NixOS\")"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
@@ -0,0 +1,217 @@
|
||||
From 92f25181dbf722cb749e445851580df4ea779299 Mon Sep 17 00:00:00 2001
|
||||
From: Luna Nova <git@lunnova.dev>
|
||||
Date: Sun, 21 Dec 2025 08:01:08 -0800
|
||||
Subject: [PATCH 1/2] fix(rdc): set CMAKE_CXX_FLAGS after project() to avoid
|
||||
clobbering env
|
||||
|
||||
CMAKE_CXX_FLAGS' initial value is set from $CXXFLAGS on project() call
|
||||
so the previous location ignored CXXFLAGS from env or CMake toolchain
|
||||
config.
|
||||
|
||||
Ref: https://cmake.org/cmake/help/v4.2/variable/CMAKE_LANG_FLAGS_INIT.html
|
||||
Fixes: 874a7b438f ("CMAKE - Fix build types")
|
||||
---
|
||||
CMakeLists.txt | 48 +++++++++++++++++++------------------
|
||||
1 file changed, 25 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 907c9fbff42..8b386c7be3d 100755
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -55,29 +55,6 @@ set_property(
|
||||
PROPERTY STRINGS "Debug" "Release" "RelWithDebInfo" "MinSizeRel"
|
||||
)
|
||||
|
||||
-# Set compile flags
|
||||
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2")
|
||||
-set(CMAKE_CXX_FLAGS_DEBUG
|
||||
- "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for Debug builds"
|
||||
-)
|
||||
-set(CMAKE_CXX_FLAGS_RELEASE
|
||||
- "${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -DNDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for Release builds"
|
||||
-)
|
||||
-set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
- "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for RelWithDebInfo builds"
|
||||
-)
|
||||
-set(CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
- "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for MinSizeRel builds"
|
||||
-)
|
||||
-
|
||||
set(CMAKE_MODULE_PATH
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules/"
|
||||
CACHE INTERNAL
|
||||
@@ -155,6 +132,31 @@ project(${RDC} VERSION "${VERSION_STRING}" HOMEPAGE_URL "https://github.com/Rade
|
||||
# this must go after project()
|
||||
include(GNUInstallDirs)
|
||||
|
||||
+# NB: CMAKE_<LANG>_FLAGS are initialized from environment (CXXFLAGS et al.)
|
||||
+# during project(). Setting them before project() discards env and toolchain
|
||||
+# defaults. Cf. CMAKE_<LANG>_FLAGS_INIT for toolchain overrides.
|
||||
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2")
|
||||
+set(CMAKE_CXX_FLAGS_DEBUG
|
||||
+ "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG"
|
||||
+ CACHE STRING
|
||||
+ "Flags for Debug builds"
|
||||
+)
|
||||
+set(CMAKE_CXX_FLAGS_RELEASE
|
||||
+ "${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -DNDEBUG"
|
||||
+ CACHE STRING
|
||||
+ "Flags for Release builds"
|
||||
+)
|
||||
+set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
+ "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG"
|
||||
+ CACHE STRING
|
||||
+ "Flags for RelWithDebInfo builds"
|
||||
+)
|
||||
+set(CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
+ "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG"
|
||||
+ CACHE STRING
|
||||
+ "Flags for MinSizeRel builds"
|
||||
+)
|
||||
+
|
||||
set(COMMON_DIR "${CMAKE_CURRENT_SOURCE_DIR}/common")
|
||||
|
||||
set(GRPC_ROOT_DEFAULT "/usr")
|
||||
|
||||
From 0c8710c3570963b29c709b1cd1f78b15fd73a950 Mon Sep 17 00:00:00 2001
|
||||
From: Luna Nova <git@lunnova.dev>
|
||||
Date: Sun, 21 Dec 2025 08:13:04 -0800
|
||||
Subject: [PATCH 2/2] fix(rdc): don't reimplement CMake default build type flag
|
||||
logic
|
||||
|
||||
The previous approach was overly complicated and added nothing. CMake already defaults
|
||||
similar flags for each of the default supported build types.
|
||||
Additionally, the previous flags broke AArch64 as -m64 -msse are incompatible.
|
||||
It's not necessary to explicitly set this with modern toolchains.
|
||||
|
||||
Fixes: 874a7b438f ("CMAKE - Fix build types")
|
||||
Fixes: bc7f01e992 ("Initial RDC commit")
|
||||
---
|
||||
CMakeLists.txt | 25 +---------------------
|
||||
example/CMakeLists.txt | 26 ++---------------------
|
||||
tests/example/CMakeLists.txt | 24 +--------------------
|
||||
3 files changed, 4 insertions(+), 71 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 8b386c7be3d..251fcddd653 100755
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -132,30 +132,7 @@ project(${RDC} VERSION "${VERSION_STRING}" HOMEPAGE_URL "https://github.com/Rade
|
||||
# this must go after project()
|
||||
include(GNUInstallDirs)
|
||||
|
||||
-# NB: CMAKE_<LANG>_FLAGS are initialized from environment (CXXFLAGS et al.)
|
||||
-# during project(). Setting them before project() discards env and toolchain
|
||||
-# defaults. Cf. CMAKE_<LANG>_FLAGS_INIT for toolchain overrides.
|
||||
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2")
|
||||
-set(CMAKE_CXX_FLAGS_DEBUG
|
||||
- "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for Debug builds"
|
||||
-)
|
||||
-set(CMAKE_CXX_FLAGS_RELEASE
|
||||
- "${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -DNDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for Release builds"
|
||||
-)
|
||||
-set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
- "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for RelWithDebInfo builds"
|
||||
-)
|
||||
-set(CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
- "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for MinSizeRel builds"
|
||||
-)
|
||||
+add_compile_options(-Wall -Wextra)
|
||||
|
||||
set(COMMON_DIR "${CMAKE_CURRENT_SOURCE_DIR}/common")
|
||||
|
||||
diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt
|
||||
index 378a2005818..7c51307ec38 100755
|
||||
--- a/example/CMakeLists.txt
|
||||
+++ b/example/CMakeLists.txt
|
||||
@@ -31,30 +31,6 @@ cmake_minimum_required(VERSION 3.15)
|
||||
option(CMAKE_VERBOSE_MAKEFILE "Enable verbose output" ON)
|
||||
option(CMAKE_EXPORT_COMPILE_COMMANDS "Export compile commands for linters and autocompleters" ON)
|
||||
|
||||
-# Set compile flags
|
||||
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2")
|
||||
-set(CMAKE_CXX_FLAGS_DEBUG
|
||||
- "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for Debug builds"
|
||||
-)
|
||||
-# note: no '-s' here unlike other CMakeLists.txt
|
||||
-set(CMAKE_CXX_FLAGS_RELEASE
|
||||
- "${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for Release builds"
|
||||
-)
|
||||
-set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
- "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for RelWithDebInfo builds"
|
||||
-)
|
||||
-set(CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
- "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for MinSizeRel builds"
|
||||
-)
|
||||
-
|
||||
set(CMAKE_CXX_STANDARD 17 CACHE STRING "The C++ standard to use")
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
@@ -66,6 +42,8 @@ endif()
|
||||
|
||||
project(RDC_example)
|
||||
|
||||
+add_compile_options(-Wall -Wextra)
|
||||
+
|
||||
# provides cmake_print_variables(VAR)
|
||||
include(CMakePrintHelpers)
|
||||
|
||||
diff --git a/tests/example/CMakeLists.txt b/tests/example/CMakeLists.txt
|
||||
index d5614f387bd..13c2f3857a1 100755
|
||||
--- a/tests/example/CMakeLists.txt
|
||||
+++ b/tests/example/CMakeLists.txt
|
||||
@@ -22,29 +22,7 @@ message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
|
||||
message(" Cmake Example Lib ")
|
||||
message("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&")
|
||||
|
||||
-# Set compile flags
|
||||
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -m64 -msse -msse2")
|
||||
-set(CMAKE_CXX_FLAGS_DEBUG
|
||||
- "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -DDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for Debug builds"
|
||||
-)
|
||||
-# note: no '-s' here unlike other CMakeLists.txt
|
||||
-set(CMAKE_CXX_FLAGS_RELEASE
|
||||
- "${CMAKE_CXX_FLAGS_RELEASE} -O2 -DNDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for Release builds"
|
||||
-)
|
||||
-set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
- "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2 -g -DNDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for RelWithDebInfo builds"
|
||||
-)
|
||||
-set(CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
- "${CMAKE_CXX_FLAGS_MINSIZEREL} -Os -DNDEBUG"
|
||||
- CACHE STRING
|
||||
- "Flags for MinSizeRel builds"
|
||||
-)
|
||||
+add_compile_options(-Wall -Wextra)
|
||||
|
||||
# Required Defines first:
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
From 299f2c770ff0abf07b8f394f154168d2aa78aa60 Mon Sep 17 00:00:00 2001
|
||||
From: Luna Nova <git@lunnova.dev>
|
||||
Date: Sun, 21 Dec 2025 08:23:01 -0800
|
||||
Subject: [PATCH] fix(rdc): use pkg-config to find libcap
|
||||
|
||||
If libcap isn't available in system wide FHS include paths building would fail.
|
||||
Fix this by using pkg-config to find libcap which provides both the library
|
||||
to link and include dirs.
|
||||
---
|
||||
CMakeLists.txt | 6 +++---
|
||||
rdc_libs/rdc/CMakeLists.txt | 2 +-
|
||||
server/CMakeLists.txt | 2 +-
|
||||
3 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 907c9fbff42..00e0a9dd87d 100755
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -192,9 +192,9 @@ mark_as_advanced(
|
||||
CPACK_GENERATOR
|
||||
)
|
||||
|
||||
-# check if libcap exists
|
||||
-# needed for sys/capabilities.h
|
||||
-find_library(LIB_CAP NAMES cap REQUIRED)
|
||||
+# needed for sys/capability.h
|
||||
+find_package(PkgConfig REQUIRED)
|
||||
+pkg_check_modules(LIBCAP REQUIRED IMPORTED_TARGET libcap)
|
||||
|
||||
if(BUILD_STANDALONE AND GRPC_ROOT STREQUAL GRPC_ROOT_DEFAULT)
|
||||
message(
|
||||
diff --git a/rdc_libs/rdc/CMakeLists.txt b/rdc_libs/rdc/CMakeLists.txt
|
||||
index d4e368edca5..f9a3ac4c487 100644
|
||||
--- a/rdc_libs/rdc/CMakeLists.txt
|
||||
+++ b/rdc_libs/rdc/CMakeLists.txt
|
||||
@@ -71,7 +71,7 @@ set(RDC_LIB_INC_LIST
|
||||
message("RDC_LIB_INC_LIST=${RDC_LIB_INC_LIST}")
|
||||
|
||||
add_library(${RDC_LIB} SHARED ${RDC_LIB_SRC_LIST} ${RDC_LIB_INC_LIST})
|
||||
-target_link_libraries(${RDC_LIB} ${BOOTSTRAP_LIB} pthread amd_smi cap)
|
||||
+target_link_libraries(${RDC_LIB} ${BOOTSTRAP_LIB} pthread amd_smi PkgConfig::LIBCAP)
|
||||
target_include_directories(
|
||||
${RDC_LIB}
|
||||
PRIVATE "${PROJECT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/include" "${AMD_SMI_INCLUDE_DIR}"
|
||||
diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt
|
||||
index baf0d851c86..0a6e71dda1c 100755
|
||||
--- a/server/CMakeLists.txt
|
||||
+++ b/server/CMakeLists.txt
|
||||
@@ -97,7 +97,7 @@ target_link_libraries(
|
||||
pthread
|
||||
rt
|
||||
gRPC::grpc++
|
||||
- cap
|
||||
+ PkgConfig::LIBCAP
|
||||
dl
|
||||
amd_smi
|
||||
rdc_bootstrap
|
||||
+2
-2
@@ -22,7 +22,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocalution";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "rocALUTION";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-bZx1Cc2jcIfysohKCKzj5mowM3IeCelRhVaBU73KnTo=";
|
||||
hash = "sha256-/Tcb11/63MWnUTyigDrL2slwqL8C553hG5OKRYZan7s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+14
-10
@@ -40,13 +40,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocblas${clr.gpuArchSuffix}";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "rocBLAS";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-FCzo/BOk4xLEFkdOdqcCXh4a9t3/OIIBEy8oz6oOMWg=";
|
||||
hash = "sha256-528jAdhWtZbbw76dfUgpMr5px0T7q4Oj76jp0z0lh3A=";
|
||||
};
|
||||
|
||||
outputs = [ "out" ] ++ lib.optional buildBenchmarks "benchmark" ++ lib.optional buildTests "test";
|
||||
@@ -122,7 +122,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
++ lib.optionals buildTensile [
|
||||
"-DCPACK_SET_DESTDIR=OFF"
|
||||
"-DLINK_BLIS=ON"
|
||||
"-DBLIS_LIB=${amd-blis}/lib/libblis-mt.so"
|
||||
"-DBLAS_LIBRARY=${amd-blis}/lib/libblis-mt.so"
|
||||
"-DBLIS_INCLUDE_DIR=${amd-blis}/include/blis/"
|
||||
"-DBLA_PREFER_PKGCONFIG=ON"
|
||||
"-DTensile_CODE_OBJECT_VERSION=default"
|
||||
@@ -136,23 +136,27 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "Extend-rocBLAS-HIP-ISA-compatibility.patch";
|
||||
url = "https://github.com/GZGavinZhao/rocBLAS/commit/89b75ff9cc731f71f370fad90517395e117b03bb.patch";
|
||||
hash = "sha256-W/ohOOyNCcYYLOiQlPzsrTlNtCBdJpKVxO8s+4G7sjo=";
|
||||
url = "https://github.com/GZGavinZhao/rocm-libraries/commit/2850f22f80f90c9e498f520608a82989a4932ec3.patch";
|
||||
hash = "sha256-SPsdEwGe+r8bQudkChRzBDAgu3tPQWFweZCgzh+4nOE=";
|
||||
stripLen = 2;
|
||||
})
|
||||
./hiplaslt-unstable-compat.patch
|
||||
];
|
||||
|
||||
# Pass $NIX_BUILD_CORES to Tensile
|
||||
postPatch = ''
|
||||
substituteInPlace cmake/build-options.cmake \
|
||||
--replace-fail 'Tensile_CPU_THREADS ""' 'Tensile_CPU_THREADS "$ENV{NIX_BUILD_CORES}"'
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace-fail "4.43.0" "4.44.0" \
|
||||
--replace-fail '0.10' '1.0'
|
||||
''
|
||||
# Workaround: libblis detection uses broken absolute paths
|
||||
# TODO: upstream a proper fix
|
||||
+ ''
|
||||
substituteInPlace clients/CMakeLists.txt \
|
||||
--replace-fail "if ( NOT WIN32 )" "if(OFF)" \
|
||||
--replace-fail "else() # WIN32" "elseif(OFF)"
|
||||
''
|
||||
# Fixes sh: line 1: /usr/bin/diff: No such file or directory
|
||||
# /build/source/clients/gtest/../include/testing_logging.hpp:1117: Failure
|
||||
+ lib.optionals buildTests ''
|
||||
+ lib.optionalString buildTests ''
|
||||
substituteInPlace clients/include/testing_logging.hpp \
|
||||
--replace-fail "/usr/bin/diff" "${lib.getExe' diffutils "diff"}"
|
||||
'';
|
||||
+2
-2
@@ -47,7 +47,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocdbgapi";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -60,7 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "ROCdbgapi";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-Rr8+SNeFps0rjk4Jn2+rFmtRJfL42l0tNOz13oZQy+I=";
|
||||
hash = "sha256-adzHfTd4O59YKqkPL1oZnM8qiuGjlWefbl50MI2Z7co=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-2
@@ -20,13 +20,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocfft${clr.gpuArchSuffix}";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "rocFFT";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-yaOjBF2aJkCBlxkydyOsrfT4lNZ0BVkS2jJC0fEiBug=";
|
||||
hash = "sha256-VVRZSmMma/sjSj2obRrwP118v/FasS30ZU0nFsEp9rw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-2
@@ -23,13 +23,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocgdb";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "ROCgdb";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-evDWg2w2FHv6OU5BQOCAXTlDm7JpwdJ3Wh5a2i5r1gQ=";
|
||||
hash = "sha256-IYdhYYJGTXBIftTEpvi+lvdhtYgdFWSpdNbtTBh0l9s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-2
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocm-cmake";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "rocm-cmake";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-wAipNWAB66YNf7exLSNPAzg3NgkGD9LPKfKiulL5yak=";
|
||||
hash = "sha256-Gu+w+2dXKXcJtdmpODByxQaZbYMkoAeX9/0tOcGy5Es=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
+2
-2
@@ -17,13 +17,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocm-core";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "rocm-core";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-Z21k+0vi/P35WTHGAdfUAX7/jVv+d9g5YBo+HTi1Mpk=";
|
||||
hash = "sha256-TKHNtY3XoLznOi1aVHdxFk3bedtLKkrFy0NVm0ad6ZY=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
+2
-13
@@ -16,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocm-runtime";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "ROCR-Runtime";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-zs0nydwYUY+8uiPyJxgTfAiV7spUMbESb0jUUvFf+AU=";
|
||||
hash = "sha256-oz2UCR4XEhNm1uDlCeDnDJrmysWKA6GKxlEuFu21es0=";
|
||||
};
|
||||
|
||||
cmakeBuildType = "RelWithDebInfo";
|
||||
@@ -59,11 +59,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
url = "https://github.com/GZGavinZhao/ROCR-Runtime/commit/7c63e7185d8fcf08537a278908946145f6231121.patch";
|
||||
})
|
||||
# Patches for UB at runtime https://github.com/ROCm/ROCR-Runtime/issues/272
|
||||
(fetchpatch {
|
||||
# [PATCH] hsa-runtime: set underlying type of hsa_region_info_t and hsa_amd_region_info_t to int
|
||||
url = "https://github.com/ROCm/ROCR-Runtime/commit/39a6a168fa07e289a10f6e20e6ead4e303e99ba0.patch";
|
||||
hash = "sha256-CshJJDvII1nNyNmt+YjwMwfBHUTlrdsxkhwfgBwO+WE=";
|
||||
})
|
||||
(fetchpatch {
|
||||
# [PATCH] queues: fix UB due to 1 << 31
|
||||
url = "https://github.com/ROCm/ROCR-Runtime/commit/9b8a0f5dbee1903fa990a7d8accc1c5fbc549636.patch";
|
||||
@@ -79,12 +74,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
url = "https://github.com/ROCm/ROCR-Runtime/commit/41bfc66aef437a5b349f71105fa4b907cc7e17d5.patch";
|
||||
hash = "sha256-A7VhPR3eSsmjq2cTBSjBIz9i//WiNjoXm0EsRKtF+ns=";
|
||||
})
|
||||
# Fix build with gcc15
|
||||
(fetchpatch {
|
||||
# [PATCH] rocr:Add missing cstdint include
|
||||
url = "https://github.com/ROCm/ROCR-Runtime/commit/5cc61b714d5b59ed5405639a37a582d839e6ebe9.patch";
|
||||
hash = "sha256-IPxDShpoFB0PjCG+zwFbnW9IBTCG3G2o9sfITGs+bN4=";
|
||||
})
|
||||
# This causes a circular dependency, aqlprofile relies on hsa-runtime64
|
||||
# which is part of rocm-runtime
|
||||
# Worked around by having rocprofiler load aqlprofile directly
|
||||
+3
-6
@@ -11,19 +11,15 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocm-smi";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "rocm_smi_lib";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-yJ3Bf+tM39JWbY+A0NlpHNkvythdAdz6ZVp1AvLcXhk=";
|
||||
hash = "sha256-LzWKWiHmMDGO2ejvcT0BBg22HbYD9q0fxK/bq6JvcnQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./cmake.patch
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
libdrm
|
||||
];
|
||||
@@ -39,6 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
# See: https://github.com/NixOS/nixpkgs/pull/197838
|
||||
"-DCMAKE_INSTALL_BINDIR=bin"
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
"-DCMAKE_INSTALL_LIBEXECDIR=libexec"
|
||||
"-DCMAKE_INSTALL_INCLUDEDIR=include"
|
||||
];
|
||||
|
||||
+2
-2
@@ -12,14 +12,14 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
pname = "rocminfo";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "rocminfo";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
sha256 = "sha256-YscZ5sFsLOVBg98w2X6vTzniTvl9NfCkIE+HAH6vv5Y=";
|
||||
sha256 = "sha256-wE1/golRQm5uggXRQ1BucxV3laypSOUCvjTFx5N2yTE=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
+2
-2
@@ -39,7 +39,7 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocmlir${suffix}";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "rocMLIR";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-p/gvr1Z6yZtO5N+ecSouXiCrf520jt1HMOy/tohUHfI=";
|
||||
hash = "sha256-0+vZ/Lkh1fC9oKyy83YjIX4xuMJEWErd8UpZZuaaXdI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-2
@@ -15,7 +15,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocprim";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "rocPRIM";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-lH4MlBEkVJocq1VliGBtb7VvWfS6p/uIKWR239fSjRY=";
|
||||
hash = "sha256-uOlrN/FvEBBCHsPeJOWs9NNqVwrcxVExfs5wp03PH0U=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-8
@@ -18,22 +18,16 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocprofiler-register";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "rocprofiler-register";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-HaN4XMHuCRDfKOpfuZ2SkOEQfAZKouh6luqbtATUYm0=";
|
||||
hash = "sha256-hK7k4tg7/5rYCSTFKsFRsRYfVevkCARcDyxlexrXbts=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
# vendored glog is too old and breaks on CMake 4, gets bumped in ROCm 7.0
|
||||
postPatch = ''
|
||||
substituteInPlace external/glog/cmake/GetCacheVariables.cmake \
|
||||
--replace-fail "(VERSION 3.3)" "(VERSION 3.5)"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
clang
|
||||
+2
-2
@@ -44,13 +44,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocprofiler";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "rocprofiler";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-CgW8foM4W3K19kUK/l8IsH2Q9DHi/z88viXTxhNqlHQ=";
|
||||
hash = "sha256-p2VwMm9Ltx/SFDIFk42nY9Too0Rp/IrqfuH8cQnhoGA=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
+4
-2
@@ -4,6 +4,7 @@
|
||||
fetchFromGitHub,
|
||||
rocmUpdateScript,
|
||||
cmake,
|
||||
python3,
|
||||
clr,
|
||||
rocdbgapi,
|
||||
elfutils,
|
||||
@@ -11,18 +12,19 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocr-debug-agent";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ROCm";
|
||||
repo = "rocr_debug_agent";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-otoxZ2NHkPDIFhvn4/nvaQ/W4LF38Nx9MZ9IYEf1DyY=";
|
||||
hash = "sha256-twoihis1OrCQ4K3rjDgjSErq+qktqz2xwkLLxBJIJ90=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
clr
|
||||
python3 # TODO: check for scripts that need patchShebangs in output
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
+2
-2
@@ -15,7 +15,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocrand${clr.gpuArchSuffix}";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "rocRAND";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-pZAwmsWup0byGxJ5ADbztco8svBpIjBWITjs+OgKvQc=";
|
||||
hash = "sha256-O7YCQBtFSa0xiHbbAXX2FyE6uRywEaMaJyX85875Yd0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-2
@@ -36,7 +36,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocsolver${clr.gpuArchSuffix}";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "rocSOLVER";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-JthNY5rkrrm9bf1fgkO9HnARdX6H0kiF9EW1jMbBmj4=";
|
||||
hash = "sha256-/JFGqNA4weVgFuVtszYAxq65/+oZjiKC8zSxwvp964M=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-2
@@ -19,7 +19,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocsparse${clr.gpuArchSuffix}";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "rocSPARSE";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-PrLyqHMAJYACkBMz97iBfwCaQ9Kf1IBL7IEf1IF1/m0=";
|
||||
hash = "sha256-0KFzrVGScCQDbOdlX016ymZ4lgCimd9XK4auK9V5p3k=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-2
@@ -15,7 +15,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocthrust";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "rocThrust";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-IfMBVISClD1dk7FnAakP2GIpyZFrCnAloFRTaNdSKyw=";
|
||||
hash = "sha256-tbGEZ8NXu7euPN8CaRYOjcmTmYq1SUP7LNKOjO0RICE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-2
@@ -19,7 +19,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "roctracer";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "roctracer";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-Dwk5cBZLysmsVA2kwpQM0FQt2KXOGcaZcAw/d8VUaXw=";
|
||||
hash = "sha256-8DMwaMtzdBuAAV5KhQfqLfTtSyvPiwZxc1lAAoeXGus=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
+2
-2
@@ -19,7 +19,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "rocwmma";
|
||||
version = "6.4.3";
|
||||
version = "7.0.2";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "ROCm";
|
||||
repo = "rocWMMA";
|
||||
rev = "rocm-${finalAttrs.version}";
|
||||
hash = "sha256-fjyxMrzt74rE7Gf4v4WawYltuw1fvahwZUpauMIE3qc=";
|
||||
hash = "sha256-xCLoYvbKiAgAxDCbEopNxYBs3V3EJBmO3NpONiveXvE=";
|
||||
};
|
||||
|
||||
patches = lib.optionals (buildTests || buildBenchmarks) [
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user