Merge pull request #219815 from benxiao/add-mmcv
This commit is contained in:
commit
cfb4d61310
2 changed files with 124 additions and 0 deletions
122
pkgs/development/python-modules/mmcv/default.nix
Normal file
122
pkgs/development/python-modules/mmcv/default.nix
Normal file
|
@ -0,0 +1,122 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, torch
|
||||
, torchvision
|
||||
, opencv4
|
||||
, yapf
|
||||
, packaging
|
||||
, pillow
|
||||
, addict
|
||||
, ninja
|
||||
, which
|
||||
, onnx
|
||||
, onnxruntime
|
||||
, scipy
|
||||
, pyturbojpeg
|
||||
, tifffile
|
||||
, lmdb
|
||||
, symlinkJoin
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (torch) cudaCapabilities cudaPackages cudaSupport;
|
||||
inherit (cudaPackages) backendStdenv cudaVersion;
|
||||
|
||||
cuda-common-redist = with cudaPackages; [
|
||||
cuda_cccl # <thrust/*>
|
||||
libcublas # cublas_v2.h
|
||||
libcusolver # cusolverDn.h
|
||||
libcusparse # cusparse.h
|
||||
];
|
||||
|
||||
cuda-native-redist = symlinkJoin {
|
||||
name = "cuda-native-redist-${cudaVersion}";
|
||||
paths = with cudaPackages; [
|
||||
cuda_cudart # cuda_runtime.h
|
||||
cuda_nvcc
|
||||
] ++ cuda-common-redist;
|
||||
};
|
||||
|
||||
cuda-redist = symlinkJoin {
|
||||
name = "cuda-redist-${cudaVersion}";
|
||||
paths = cuda-common-redist;
|
||||
};
|
||||
|
||||
in
|
||||
buildPythonPackage rec {
|
||||
pname = "mmcv";
|
||||
version = "1.7.1";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open-mmlab";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-b4MLBPNRCcPq1osUvqo71PCWVX7lOjAH+dXttd4ZapU";
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
export MMCV_WITH_OPS=1
|
||||
'' + lib.optionalString cudaSupport ''
|
||||
export CC=${backendStdenv.cc}/bin/cc
|
||||
export CXX=${backendStdenv.cc}/bin/c++
|
||||
export TORCH_CUDA_ARCH_LIST="${lib.concatStringsSep ";" cudaCapabilities}"
|
||||
export FORCE_CUDA=1
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py --replace "cpu_use = 4" "cpu_use = $NIX_BUILD_CORES"
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
# remove the conflicting source directory
|
||||
rm -rf mmcv
|
||||
'';
|
||||
|
||||
# test_cnn test_ops really requires gpus to be useful.
|
||||
# some of the tests take exceedingly long time.
|
||||
# the rest of the tests are disabled due to sandbox env.
|
||||
disabledTests = [
|
||||
"test_cnn"
|
||||
"test_ops"
|
||||
"test_fileclient"
|
||||
"test_load_model_zoo"
|
||||
"test_processing"
|
||||
"test_checkpoint"
|
||||
"test_hub"
|
||||
"test_reader"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ ninja which ]
|
||||
++ lib.optionals cudaSupport [ cuda-native-redist ];
|
||||
|
||||
buildInputs = [ torch ] ++ lib.optionals cudaSupport [ cuda-redist ];
|
||||
|
||||
nativeCheckInputs = [ pytestCheckHook torchvision lmdb onnx onnxruntime scipy pyturbojpeg tifffile ];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
torch
|
||||
opencv4
|
||||
yapf
|
||||
packaging
|
||||
pillow
|
||||
addict
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"mmcv"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Foundational Library for Computer Vision Research";
|
||||
homepage = "https://github.com/open-mmlab/mmcv";
|
||||
changelog = "https://github.com/open-mmlab/mmcv/releases/tag/v${version}";
|
||||
license = with licenses; [ asl20 ];
|
||||
maintainers = with maintainers; [ rxiao ];
|
||||
};
|
||||
}
|
|
@ -6171,6 +6171,8 @@ self: super: with self; {
|
|||
enablePython = true;
|
||||
});
|
||||
|
||||
mmcv = callPackage ../development/python-modules/mmcv { };
|
||||
|
||||
mmh3 = callPackage ../development/python-modules/mmh3 { };
|
||||
|
||||
mmpython = callPackage ../development/python-modules/mmpython { };
|
||||
|
|
Loading…
Reference in a new issue