buda things
This commit is contained in:
parent
adaefcb7b4
commit
268673f04b
23 changed files with 1428 additions and 0 deletions
181
pkgs/buda-prebuilt/default.nix
Normal file
181
pkgs/buda-prebuilt/default.nix
Normal file
|
@ -0,0 +1,181 @@
|
|||
{
|
||||
lib,
|
||||
python310Packages,
|
||||
fetchzip,
|
||||
stdenv,
|
||||
callPackage,
|
||||
__splicedPackages,
|
||||
darwin,
|
||||
runCommand,
|
||||
}:
|
||||
|
||||
let
|
||||
python3Packages = python310Packages;
|
||||
pkgs = __splicedPackages;
|
||||
|
||||
boost_1_74 = (callPackage ./vendored/boost/default.nix { }).boost174;
|
||||
yaml-cpp_0_6 = callPackage ./vendored/libyaml-cpp.nix { };
|
||||
|
||||
prebuilt-buda = fetchzip {
|
||||
url = "https://github.com/tenstorrent/tt-buda/releases/download/v0.19.3/pybuda-wh.b0-v0.19.3-ubuntu-22-04-amd64-python3.10.zip";
|
||||
hash = "sha256-M9sgFKSmWra+BglEWgrfFPJRS+UIVKUG+ZF1oTPVexg=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
pipInstallHook' = python3Packages.callPackage (
|
||||
{ makePythonHook, pip }:
|
||||
makePythonHook {
|
||||
name = "pip-install-hook";
|
||||
propagatedBuildInputs = [ pip ];
|
||||
substitutions = {
|
||||
pythonInterpreter = python3Packages.python.interpreter;
|
||||
pythonSitePackages = python3Packages.python.sitePackages;
|
||||
};
|
||||
} ./vendored/pip-install-hook.sh
|
||||
) { };
|
||||
|
||||
nukeReferences = callPackage ./vendored/nuke-references.nix {
|
||||
inherit (darwin) signingUtils;
|
||||
};
|
||||
|
||||
autoPatchelfHook = callPackage (
|
||||
{ makeSetupHook, bintools }:
|
||||
makeSetupHook {
|
||||
name = "auto-patchelf-hook";
|
||||
propagatedBuildInputs = [
|
||||
bintools
|
||||
];
|
||||
substitutions = {
|
||||
pythonInterpreter = "${python3Packages.python.withPackages (ps: [ ps.pyelftools ])}/bin/python";
|
||||
autoPatchelfScript = ./vendored/auto-patchelf.py;
|
||||
};
|
||||
} ./auto-patchelf.sh
|
||||
) { };
|
||||
|
||||
tt-buda = stdenv.mkDerivation rec {
|
||||
pname = "tt-buda";
|
||||
version = "0.19.3";
|
||||
format = "wheel";
|
||||
|
||||
src = prebuilt-buda;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pipInstallHook'
|
||||
nukeReferences
|
||||
];
|
||||
|
||||
preInstall = ''
|
||||
mkdir dist
|
||||
mv *.whl dist/
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
find $out -name "__pycache__" -type d | xargs rm -rf
|
||||
|
||||
find $out/bin/ -type f -not -name 'debuda' -print0 | xargs -0 rm --
|
||||
substituteInPlace $out/bin/debuda \
|
||||
--replace-fail "${python3Packages.python.interpreter}" "/usr/bin/env python3"
|
||||
|
||||
# error: illegal path references in fixed-output derivation
|
||||
find $out -print0 | xargs -0 nuke-refs
|
||||
|
||||
'';
|
||||
|
||||
dontPatchShebangs = true;
|
||||
dontFixup = true;
|
||||
|
||||
outputHash = "sha256-eSU10kgIQzJ0kv6gmQwMCdVw0uBpohVyYqkjK4RU2ng=";
|
||||
outputHashAlgo = "sha256";
|
||||
outputHashMode = "recursive";
|
||||
|
||||
meta = {
|
||||
description = "Tenstorrent TT-BUDA Repository";
|
||||
homepage = "https://github.com/tenstorrent/tt-buda";
|
||||
license = lib.licenses.asl20;
|
||||
mainProgram = "tt-buda";
|
||||
};
|
||||
};
|
||||
|
||||
tt-buda-final = python3Packages.toPythonModule (
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "tt-buda-final";
|
||||
inherit (tt-buda) version;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
python3Packages.pythonImportsCheckHook
|
||||
];
|
||||
|
||||
buildInputs =
|
||||
with pkgs;
|
||||
[
|
||||
stdenv.cc.libc.libgcc
|
||||
stdenv.cc.libc.libgcc.lib
|
||||
libpng
|
||||
python3Packages.python
|
||||
ncurses
|
||||
expat
|
||||
hwloc
|
||||
zeromq
|
||||
libjpeg8
|
||||
glib
|
||||
libGL
|
||||
boost_1_74
|
||||
yaml-cpp_0_6
|
||||
]
|
||||
++ (with pkgs.xorg; [
|
||||
libxcb
|
||||
libXext
|
||||
libX11
|
||||
libSM
|
||||
libICE
|
||||
]);
|
||||
|
||||
#runtimeDependencies = [
|
||||
# # from torch._C import * # noqa: F403
|
||||
# # ImportError: libstdc++.so.6: cannot open shared object file: No such file or directory
|
||||
# stdenv.cc.libc.libgcc.lib
|
||||
|
||||
#];
|
||||
|
||||
#pythonImportsCheck = [
|
||||
# "pybuda"
|
||||
# "torch"
|
||||
#];
|
||||
|
||||
passthru = {
|
||||
inherit tt-buda yaml-cpp_0_6 boost_1_74;
|
||||
pythonWith = python3Packages.python.withPackages (ps: [ finalAttrs.finalPackage ]);
|
||||
|
||||
tests = {
|
||||
integrationTest =
|
||||
runCommand "tt-buda-tests-integration-test"
|
||||
{
|
||||
strictDeps = true;
|
||||
nativeBuildInputs = [
|
||||
finalAttrs.passthru.pythonWith
|
||||
stdenv.cc.libc.libgcc.lib
|
||||
];
|
||||
LD_LIBRARY_PATH = lib.makeLibraryPath [ stdenv.cc.libc.libgcc.lib ];
|
||||
}
|
||||
''
|
||||
export HOME=$(mktemp -d)
|
||||
python3 "${./test.py}"
|
||||
touch "$out"
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out
|
||||
cp -r ${tt-buda}/* $out
|
||||
runHook postInstall
|
||||
|
||||
|
||||
'';
|
||||
})
|
||||
);
|
||||
in
|
||||
tt-buda-final
|
Loading…
Add table
Add a link
Reference in a new issue