Update pkg setup
This commit is contained in:
61
flake.lock
generated
Normal file
61
flake.lock
generated
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751274312,
|
||||||
|
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
60
flake.nix
60
flake.nix
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
description = "Ascend CANN Toolkit Nix package";
|
description = "Ascend CANN: ascend-toolkit (CANN env), bisheng-wrapper (Nix bisheng; needs ASCEND_TOOLKIT_HOME), ascend-cann (both)";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||||
@@ -10,6 +10,23 @@
|
|||||||
flake-utils.lib.eachDefaultSystem (system:
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs { inherit system; };
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
lib = pkgs.lib;
|
||||||
|
|
||||||
|
bishengNixCflags =
|
||||||
|
let
|
||||||
|
gccCc = pkgs.gcc13.cc;
|
||||||
|
cxxDev = lib.getDev gccCc;
|
||||||
|
ccVersion = gccCc.version;
|
||||||
|
host = pkgs.stdenv.hostPlatform.config;
|
||||||
|
in
|
||||||
|
builtins.concatStringsSep " " [
|
||||||
|
"-isystem ${cxxDev}/include/c++/${ccVersion}"
|
||||||
|
"-isystem ${cxxDev}/include/c++/${ccVersion}/${host}"
|
||||||
|
"-isystem ${gccCc}/lib/gcc/${host}/${ccVersion}/include"
|
||||||
|
"-isystem ${pkgs.glibc.dev}/include"
|
||||||
|
];
|
||||||
|
|
||||||
|
bishengNixCflagsFile = pkgs.writeText "bisheng-nix-cflags" bishengNixCflags;
|
||||||
|
|
||||||
fetchAscendToolkit = pkgs.fetchurl {
|
fetchAscendToolkit = pkgs.fetchurl {
|
||||||
url = "https://git.amadey.xyz/api/packages/mozart/generic/ascend-toolkit/8.5.0/ascend-toolkit-8.5.0-310p-full.tar.gz";
|
url = "https://git.amadey.xyz/api/packages/mozart/generic/ascend-toolkit/8.5.0/ascend-toolkit-8.5.0-310p-full.tar.gz";
|
||||||
@@ -52,6 +69,8 @@
|
|||||||
find $out/tools -type f \( -name "*.py" -o -name "*.sh" \) -exec chmod +x {} + 2>/dev/null || true
|
find $out/tools -type f \( -name "*.py" -o -name "*.sh" \) -exec chmod +x {} + 2>/dev/null || true
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
setupHook = ./nix/ascend-toolkit-setup-hook.sh;
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
echo "Adding RPATH for toolkit-internal libraries..."
|
echo "Adding RPATH for toolkit-internal libraries..."
|
||||||
local rpath="$out/lib64:$out/devlib:$out/tools/aml/lib64"
|
local rpath="$out/lib64:$out/devlib:$out/tools/aml/lib64"
|
||||||
@@ -72,13 +91,11 @@
|
|||||||
if [ -f "$bisheng_config" ]; then
|
if [ -f "$bisheng_config" ]; then
|
||||||
cp ${./nix/bisheng_config_patched.cmake} "$bisheng_config"
|
cp ${./nix/bisheng_config_patched.cmake} "$bisheng_config"
|
||||||
fi
|
fi
|
||||||
'';
|
|
||||||
|
|
||||||
passthru = {
|
if [ -f "$out/nix-support/setup-hook" ]; then
|
||||||
setupHook = pkgs.makeSetupHook
|
substituteInPlace "$out/nix-support/setup-hook" --subst-var-by ASCEND_TOOLKIT "$out"
|
||||||
{ name = "ascend-toolkit-setup-hook.sh"; }
|
fi
|
||||||
./nix/ascend-toolkit-setup-hook.sh;
|
'';
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
bisheng-wrapper = pkgs.stdenv.mkDerivation {
|
bisheng-wrapper = pkgs.stdenv.mkDerivation {
|
||||||
@@ -107,17 +124,42 @@
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
touch $out/nix-support/add-local-cc-cflags-before.sh
|
touch $out/nix-support/add-local-cc-cflags-before.sh
|
||||||
|
|
||||||
|
cp ${bishengNixCflagsFile} $out/nix-support/bisheng-nix-cflags
|
||||||
|
cp ${./nix/bisheng-wrapper-setup-hook.sh} $out/nix-support/setup-hook
|
||||||
|
substituteInPlace $out/nix-support/setup-hook \
|
||||||
|
--subst-var-by WRAPPER_OUT "$out"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with pkgs.lib; {
|
meta = with pkgs.lib; {
|
||||||
description = "Wrapper for Huawei Bisheng compiler that injects Nix compilation flags";
|
description = "Bisheng wrapper with Nix CFLAGS; set ASCEND_TOOLKIT_HOME to your CANN toolkit (use with ascend-toolkit or any upstream install)";
|
||||||
|
license = licenses.mit;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Single dependency for dev shells: propagates toolkit + bisheng-wrapper (hooks run in list order).
|
||||||
|
ascend-cann = pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
pname = "ascend-cann";
|
||||||
|
version = ascend-toolkit.version;
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
|
||||||
|
installPhase = "mkdir -p $out";
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
ascend-toolkit
|
||||||
|
bisheng-wrapper
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with pkgs.lib; {
|
||||||
|
description = "Meta package: CANN toolkit + Bisheng Nix wrapper (add only this, or use ascend-toolkit / bisheng-wrapper separately)";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
packages = {
|
packages = {
|
||||||
inherit ascend-toolkit bisheng-wrapper;
|
inherit ascend-toolkit bisheng-wrapper ascend-cann;
|
||||||
default = ascend-toolkit;
|
default = ascend-toolkit;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
# Setup hook for ascend-toolkit
|
# Setup hook for ascend-toolkit (sourced when package is in buildInputs)
|
||||||
# This is sourced when ascend-toolkit is in buildInputs of another derivation
|
|
||||||
addAscendEnv() {
|
addAscendEnv() {
|
||||||
local toolkit="${1:?ascend-toolkit path required}"
|
local toolkit="${1:?ascend-toolkit path required}"
|
||||||
|
|
||||||
# Core environment variables
|
|
||||||
export ASCEND_TOOLKIT_HOME="${toolkit}"
|
export ASCEND_TOOLKIT_HOME="${toolkit}"
|
||||||
export ASCEND_HOME_PATH="${toolkit}"
|
export ASCEND_HOME_PATH="${toolkit}"
|
||||||
export ASCEND_OPP_PATH="${toolkit}/opp"
|
export ASCEND_OPP_PATH="${toolkit}/opp"
|
||||||
export ASCEND_AICPU_PATH="${toolkit}"
|
export ASCEND_AICPU_PATH="${toolkit}"
|
||||||
export TOOLCHAIN_HOME="${toolkit}/toolkit"
|
export TOOLCHAIN_HOME="${toolkit}/toolkit"
|
||||||
|
|
||||||
# PATH
|
|
||||||
addToSearchPath PATH "${toolkit}/bin"
|
addToSearchPath PATH "${toolkit}/bin"
|
||||||
addToSearchPath PATH "${toolkit}/tools/ccec_compiler/bin"
|
addToSearchPath PATH "${toolkit}/tools/ccec_compiler/bin"
|
||||||
addToSearchPath PATH "${toolkit}/tools/profiler/bin"
|
addToSearchPath PATH "${toolkit}/tools/profiler/bin"
|
||||||
@@ -18,7 +15,6 @@ addAscendEnv() {
|
|||||||
addToSearchPath PATH "${toolkit}/tools/show_kernel_debug_data"
|
addToSearchPath PATH "${toolkit}/tools/show_kernel_debug_data"
|
||||||
addToSearchPath PATH "${toolkit}/tools/msobjdump"
|
addToSearchPath PATH "${toolkit}/tools/msobjdump"
|
||||||
|
|
||||||
# LD_LIBRARY_PATH
|
|
||||||
addToSearchPath LD_LIBRARY_PATH "${toolkit}/lib64"
|
addToSearchPath LD_LIBRARY_PATH "${toolkit}/lib64"
|
||||||
addToSearchPath LD_LIBRARY_PATH "${toolkit}/lib64/plugin/opskernel"
|
addToSearchPath LD_LIBRARY_PATH "${toolkit}/lib64/plugin/opskernel"
|
||||||
addToSearchPath LD_LIBRARY_PATH "${toolkit}/lib64/plugin/nnengine"
|
addToSearchPath LD_LIBRARY_PATH "${toolkit}/lib64/plugin/nnengine"
|
||||||
@@ -27,15 +23,11 @@ addAscendEnv() {
|
|||||||
addToSearchPath LD_LIBRARY_PATH "${toolkit}/tools/aml/lib64/plugin"
|
addToSearchPath LD_LIBRARY_PATH "${toolkit}/tools/aml/lib64/plugin"
|
||||||
addToSearchPath LD_LIBRARY_PATH "${toolkit}/devlib"
|
addToSearchPath LD_LIBRARY_PATH "${toolkit}/devlib"
|
||||||
|
|
||||||
# PYTHONPATH
|
|
||||||
addToSearchPath PYTHONPATH "${toolkit}/python/site-packages"
|
addToSearchPath PYTHONPATH "${toolkit}/python/site-packages"
|
||||||
addToSearchPath PYTHONPATH "${toolkit}/opp/built-in/op_impl/ai_core/tbe"
|
addToSearchPath PYTHONPATH "${toolkit}/opp/built-in/op_impl/ai_core/tbe"
|
||||||
|
|
||||||
# CMAKE_PREFIX_PATH
|
|
||||||
addToSearchPath CMAKE_PREFIX_PATH "${toolkit}/lib64/cmake"
|
addToSearchPath CMAKE_PREFIX_PATH "${toolkit}/lib64/cmake"
|
||||||
addToSearchPath CMAKE_PREFIX_PATH "${toolkit}/toolkit/tools/tikicpulib/lib/cmake"
|
addToSearchPath CMAKE_PREFIX_PATH "${toolkit}/toolkit/tools/tikicpulib/lib/cmake"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ -n "${ascend-toolkit:-}" ]; then
|
addAscendEnv "@ASCEND_TOOLKIT@"
|
||||||
addAscendEnv "${ascend-toolkit}"
|
|
||||||
fi
|
|
||||||
|
|||||||
16
nix/bisheng-wrapper-setup-hook.sh
Normal file
16
nix/bisheng-wrapper-setup-hook.sh
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Setup hook for bisheng-wrapper (source when package is in buildInputs).
|
||||||
|
# Use alone when ASCEND_TOOLKIT_HOME already points at a CANN install (Nix or not).
|
||||||
|
addToSearchPath PATH "@WRAPPER_OUT@/bin"
|
||||||
|
|
||||||
|
if [ -n "${ASCEND_TOOLKIT_HOME:-}" ]; then
|
||||||
|
_ascend_arch_linux="$(uname -m)-linux"
|
||||||
|
export BISHENG_REAL="${ASCEND_TOOLKIT_HOME}/${_ascend_arch_linux}/ccec_compiler/bin/bisheng"
|
||||||
|
fi
|
||||||
|
|
||||||
|
export CMAKE_C_COMPILER="@WRAPPER_OUT@/bin/bisheng"
|
||||||
|
export CMAKE_CXX_COMPILER="@WRAPPER_OUT@/bin/bisheng"
|
||||||
|
|
||||||
|
if [ -f "@WRAPPER_OUT@/nix-support/bisheng-nix-cflags" ]; then
|
||||||
|
export NIX_CFLAGS_COMPILE_bisheng="$(cat "@WRAPPER_OUT@/nix-support/bisheng-nix-cflags")"
|
||||||
|
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE_bisheng"
|
||||||
|
fi
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
#
|
|
||||||
# pack_ascend_toolkit.sh — создаёт два tar.gz архива из собранного ascend-toolkit:
|
|
||||||
#
|
|
||||||
# 1. ascend-toolkit-8.5.0-full.tar.gz — полный архив (все файлы)
|
|
||||||
# 2. ascend-toolkit-8.5.0-minimal.tar.gz — минимальный набор для режима sim
|
|
||||||
#
|
|
||||||
# Использование:
|
|
||||||
# ./pack_ascend_toolkit.sh [path_to_result_dir]
|
|
||||||
#
|
|
||||||
# Если аргумент не указан, используется ./result
|
|
||||||
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
RESULT_DIR="${1:-$(cd "$(dirname "$0")" && ls -d result 2>/dev/null || echo result)}"
|
|
||||||
VERSION="8.5.0"
|
|
||||||
OUTPUT_DIR="${2:-$(dirname "$0")}"
|
|
||||||
|
|
||||||
if [ ! -d "$RESULT_DIR" ]; then
|
|
||||||
echo "[ERROR] Directory not found: $RESULT_DIR"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
cd "$RESULT_DIR"
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
# 1. Полный архив — всё содержимое
|
|
||||||
# =============================================================================
|
|
||||||
echo "=== Creating FULL archive ==="
|
|
||||||
FULL_ARCHIVE="${OUTPUT_DIR}/ascend-toolkit-${VERSION}-full.tar.gz"
|
|
||||||
tar czf "$FULL_ARCHIVE" .
|
|
||||||
FULL_SIZE=$(wc -c < "$FULL_ARCHIVE" | numfmt --to=iec-i --suffix=B)
|
|
||||||
echo " FULL archive: $FULL_ARCHIVE ($FULL_SIZE)"
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
# 2. Минимальный архив — только файлы для режима sim
|
|
||||||
# =============================================================================
|
|
||||||
echo "=== Creating MINIMAL archive (sim mode) ==="
|
|
||||||
|
|
||||||
# Создаём временную директорию с минимальным набором
|
|
||||||
MINIMAL_DIR=$(mktemp -d)
|
|
||||||
trap "rm -rf $MINIMAL_DIR" EXIT
|
|
||||||
|
|
||||||
# Копируем только нужные для sim-режима файлы/директории
|
|
||||||
#
|
|
||||||
# Структура основана на том, что реально используется при
|
|
||||||
# bash run.sh -r sim -v Ascend310P3
|
|
||||||
#
|
|
||||||
# Основные потребители:
|
|
||||||
# - cmake/npu_lib.cmake → compiler/tikcpp/ascendc_kernel_cmake
|
|
||||||
# - bisheng компиляция → tools/bisheng_compiler
|
|
||||||
# - cce линковка → tools/ccec_compiler (через x86_64-linux/ccec_compiler symlink)
|
|
||||||
# - симулятор → tools/simulator/Ascend310P3/lib
|
|
||||||
# - заголовки → include
|
|
||||||
# - библиотеки → lib64, devlib
|
|
||||||
# - OPP данные → opp/built-in (нужны для op_impl)
|
|
||||||
# - Python bindings → python/site-packages
|
|
||||||
# - Runtime → runtime
|
|
||||||
# - Toolkit → toolkit
|
|
||||||
# - Конфигурации → conf, compat
|
|
||||||
# - set_env.sh — корень
|
|
||||||
# =============================================================================
|
|
||||||
|
|
||||||
echo " Copying essential files..."
|
|
||||||
|
|
||||||
# Корневые файлы
|
|
||||||
mkdir -p "$MINIMAL_DIR"
|
|
||||||
cp -a set_env.sh "$MINIMAL_DIR/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# bin — содержит setenv.bash symlink + ключевые утилиты
|
|
||||||
mkdir -p "$MINIMAL_DIR/bin"
|
|
||||||
cp -a bin/* "$MINIMAL_DIR/bin/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# compiler — tikcpp cmake модули
|
|
||||||
mkdir -p "$MINIMAL_DIR/compiler"
|
|
||||||
cp -a compiler/tikcpp "$MINIMAL_DIR/compiler/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# compat
|
|
||||||
mkdir -p "$MINIMAL_DIR/compat"
|
|
||||||
cp -a compat/* "$MINIMAL_DIR/compat/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# conf
|
|
||||||
mkdir -p "$MINIMAL_DIR/conf"
|
|
||||||
cp -a conf/* "$MINIMAL_DIR/conf/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# devlib — stub библиотеки для разработки
|
|
||||||
mkdir -p "$MINIMAL_DIR/devlib"
|
|
||||||
cp -a devlib/* "$MINIMAL_DIR/devlib/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# fwkacllib — framework ACL библиотеки
|
|
||||||
mkdir -p "$MINIMAL_DIR/fwkacllib"
|
|
||||||
cp -a fwkacllib/* "$MINIMAL_DIR/fwkacllib/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# include — все заголовочные файлы (критично для компиляции)
|
|
||||||
mkdir -p "$MINIMAL_DIR/include"
|
|
||||||
cp -a include/* "$MINIMAL_DIR/include/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# lib64 — основные библиотеки
|
|
||||||
mkdir -p "$MINIMAL_DIR/lib64"
|
|
||||||
cp -a lib64/* "$MINIMAL_DIR/lib64/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# pkg_inc
|
|
||||||
mkdir -p "$MINIMAL_DIR/pkg_inc"
|
|
||||||
cp -a pkg_inc/* "$MINIMAL_DIR/pkg_inc/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# python
|
|
||||||
mkdir -p "$MINIMAL_DIR/python"
|
|
||||||
cp -a python/* "$MINIMAL_DIR/python/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# runtime
|
|
||||||
mkdir -p "$MINIMAL_DIR/runtime"
|
|
||||||
cp -a runtime/* "$MINIMAL_DIR/runtime/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# toolkit
|
|
||||||
mkdir -p "$MINIMAL_DIR/toolkit"
|
|
||||||
cp -a toolkit/* "$MINIMAL_DIR/toolkit/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# x86_64-linux — содержит архитектурно-зависимые файлы (symlinks на реальные директории)
|
|
||||||
mkdir -p "$MINIMAL_DIR/x86_64-linux"
|
|
||||||
cp -a x86_64-linux/* "$MINIMAL_DIR/x86_64-linux/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# tools — выборочно:
|
|
||||||
# - bisheng_compiler — основной AscendC компилятор
|
|
||||||
# - ccec_compiler — linker для AI Core
|
|
||||||
# - simulator — библиотека симулятора для sim режима
|
|
||||||
# - tikcpp — tikcpp файлы
|
|
||||||
# - aml — используется в LD_LIBRARY_PATH
|
|
||||||
# - profiler — может использоваться
|
|
||||||
# - ascendc_tools — ascendc инструменты
|
|
||||||
mkdir -p "$MINIMAL_DIR/tools"
|
|
||||||
cp -a tools/bisheng_compiler "$MINIMAL_DIR/tools/" 2>/dev/null || true
|
|
||||||
cp -a tools/ccec_compiler "$MINIMAL_DIR/tools/" 2>/dev/null || true
|
|
||||||
cp -a tools/simulator "$MINIMAL_DIR/tools/" 2>/dev/null || true
|
|
||||||
cp -a tools/tikcpp "$MINIMAL_DIR/tools/" 2>/dev/null || true
|
|
||||||
cp -a tools/aml "$MINIMAL_DIR/tools/" 2>/dev/null || true
|
|
||||||
cp -a tools/profiler "$MINIMAL_DIR/tools/" 2>/dev/null || true
|
|
||||||
cp -a tools/ascendc_tools "$MINIMAL_DIR/tools/" 2>/dev/null || true
|
|
||||||
|
|
||||||
# opp — operator packages
|
|
||||||
# Для sim режима нужны op_impl (tiling и kernel реализации)
|
|
||||||
mkdir -p "$MINIMAL_DIR/opp"
|
|
||||||
cp -a opp/built-in "$MINIMAL_DIR/opp/" 2>/dev/null || true
|
|
||||||
cp -a opp/include "$MINIMAL_DIR/opp/" 2>/dev/null || true
|
|
||||||
cp -a opp/lib64 "$MINIMAL_DIR/opp/" 2>/dev/null || true
|
|
||||||
|
|
||||||
echo " Compressing..."
|
|
||||||
MINIMAL_ARCHIVE="${OUTPUT_DIR}/ascend-toolkit-${VERSION}-minimal.tar.gz"
|
|
||||||
tar czf "$MINIMAL_ARCHIVE" -C "$MINIMAL_DIR" .
|
|
||||||
|
|
||||||
MINIMAL_SIZE=$(wc -c < "$MINIMAL_ARCHIVE" | numfmt --to=iec-i --suffix=B)
|
|
||||||
echo " MINIMAL archive: $MINIMAL_ARCHIVE ($MINIMAL_SIZE)"
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
# Итог
|
|
||||||
# =============================================================================
|
|
||||||
echo ""
|
|
||||||
echo "=== Summary ==="
|
|
||||||
echo " FULL archive: $FULL_SIZE"
|
|
||||||
echo " MINIMAL archive: $MINIMAL_SIZE"
|
|
||||||
echo ""
|
|
||||||
echo "Upload these files to your Gitea instance."
|
|
||||||
echo "Then update flake.nix to use fetchurl instead of local path."
|
|
||||||
Reference in New Issue
Block a user