diff options
author | Phillip Seeber <phillip.seeber@uni-jena.de> | 2023-05-26 13:17:02 +0200 |
---|---|---|
committer | Phillip Seeber <phillip.seeber@uni-jena.de> | 2023-05-26 13:17:16 +0200 |
commit | a615eb5a75f5892439ee71c9f645022b2acdca7e (patch) | |
tree | 7450d8991c09849c47236b7db8ebfc82d4d88cd2 /pkgs/development | |
parent | 671cb8e663d83dc38cd275afac60a5eb0449838a (diff) |
taco: init at 02-08-2022_unstable
taco: change python to python3 taco: fix python call taco: pass python as null default taco: add llvmPackages for darwin
Diffstat (limited to 'pkgs/development')
-rw-r--r-- | pkgs/development/libraries/taco/default.nix | 54 | ||||
-rw-r--r-- | pkgs/development/libraries/taco/taco.patch | 13 |
2 files changed, 67 insertions, 0 deletions
diff --git a/pkgs/development/libraries/taco/default.nix b/pkgs/development/libraries/taco/default.nix new file mode 100644 index 0000000000000..1bd404806f107 --- /dev/null +++ b/pkgs/development/libraries/taco/default.nix @@ -0,0 +1,54 @@ +{ stdenv +, lib +, fetchgit +, cmake +, llvmPackages +, enablePython ? false +, python ? null +}: + +let pyEnv = python.withPackages (p: with p; [ numpy scipy ]); + +in stdenv.mkDerivation rec { + pname = "taco"; + version = "unstable-2022-08-02"; + + src = fetchgit { + url = "https://github.com/tensor-compiler/${pname}.git"; + rev = "2b8ece4c230a5f0f0a74bc6f48e28edfb6c1c95e"; + fetchSubmodules = true; + hash = "sha256-PnBocyRLiLALuVS3Gkt/yJeslCMKyK4zdsBI8BFaTSg="; + }; + + # Remove test cases from cmake build as they violate modern C++ expectations + patches = [ ./taco.patch ]; + + nativeBuildInputs = [ cmake ]; + + buildInputs = lib.optional stdenv.isDarwin llvmPackages.openmp; + + propagatedBuildInputs = lib.optional enablePython pyEnv; + + cmakeFlags = [ + "-DOPENMP=ON" + ] ++ lib.optional enablePython "-DPYTHON=ON" ; + + postInstall = lib.strings.optionalString enablePython '' + mkdir -p $out/${python.sitePackages} + cp -r lib/pytaco $out/${python.sitePackages}/. + ''; + + # The standard CMake test suite fails a single test of the CLI interface. + doCheck = false; + + # Cython somehow gets built with references to /build/. + # However, the python module works flawlessly. + dontFixup = enablePython; + + meta = with lib; { + description = "Computes sparse tensor expressions on CPUs and GPUs"; + license = licenses.mit; + homepage = "https://github.com/tensor-compiler/taco"; + maintainers = [ maintainers.sheepforce ]; + }; +} diff --git a/pkgs/development/libraries/taco/taco.patch b/pkgs/development/libraries/taco/taco.patch new file mode 100644 index 0000000000000..1fc61c2aa5ad0 --- /dev/null +++ b/pkgs/development/libraries/taco/taco.patch @@ -0,0 +1,13 @@ +diff --git a/test/tests-tensor_types.cpp b/test/tests-tensor_types.cpp +index 39d1b30a..c507da81 100644 +--- a/test/tests-tensor_types.cpp ++++ b/test/tests-tensor_types.cpp +@@ -45,7 +45,7 @@ TYPED_TEST_P(VectorTensorTest, types) { + ASSERT_EQ(t, a.getComponentType()); + ASSERT_EQ(1, a.getOrder()); + ASSERT_EQ(5, a.getDimension(0)); +- map<vector<int>,TypeParam> vals = {{{0}, 1.0}, {{2}, 2.0}}; ++ map<vector<int>,TypeParam> vals = {{{0}, (TypeParam)1.0}, {{2}, (TypeParam)2.0}}; + for (auto& val : vals) { + a.insert(val.first, val.second); + } |