1{ lib 2, buildPythonPackage 3, fetchFromGitHub 4, cmake 5, pkg-config 6, ninja 7, pybind11 8, torch 9, cudaSupport ? torch.cudaSupport 10, cudaPackages 11}: 12 13buildPythonPackage rec { 14 pname = "torchaudio"; 15 version = "2.0.2"; 16 17 src = fetchFromGitHub { 18 owner = "pytorch"; 19 repo = "audio"; 20 rev = "v${version}"; 21 hash = "sha256-9lB4gLXq0nXHT1+DNOlbJQqNndt2I6kVoNwhMO/2qlE="; 22 }; 23 24 postPatch = '' 25 substituteInPlace setup.py \ 26 --replace 'print(" --- Initializing submodules")' "return" \ 27 --replace "_fetch_archives(_parse_sources())" "pass" 28 ''; 29 30 env = { 31 TORCH_CUDA_ARCH_LIST = "${lib.concatStringsSep ";" torch.cudaCapabilities}"; 32 }; 33 34 nativeBuildInputs = [ 35 cmake 36 pkg-config 37 ninja 38 ] ++ lib.optionals cudaSupport [ 39 cudaPackages.cuda_nvcc 40 ]; 41 buildInputs = [ 42 pybind11 43 ] ++ lib.optionals cudaSupport [ 44 cudaPackages.libcurand.dev 45 cudaPackages.libcurand.lib 46 cudaPackages.cuda_cudart # cuda_runtime.h and libraries 47 cudaPackages.cuda_cccl.dev # <thrust/*> 48 cudaPackages.cuda_nvtx.dev 49 cudaPackages.cuda_nvtx.lib # -llibNVToolsExt 50 cudaPackages.libcublas.dev 51 cudaPackages.libcublas.lib 52 cudaPackages.libcufft.dev 53 cudaPackages.libcufft.lib 54 ]; 55 propagatedBuildInputs = [ 56 torch 57 ]; 58 59 BUILD_SOX=0; 60 BUILD_KALDI=0; 61 BUILD_RNNT=0; 62 BUILD_CTC_DECODER=0; 63 64 dontUseCmakeConfigure = true; 65 66 doCheck = false; # requires sox backend 67 68 meta = with lib; { 69 description = "PyTorch audio library"; 70 homepage = "https://pytorch.org/"; 71 changelog = "https://github.com/pytorch/audio/releases/tag/v${version}"; 72 license = licenses.bsd2; 73 platforms = platforms.unix; 74 maintainers = with maintainers; [ junjihashimoto ]; 75 }; 76}