From 8ddb45c1d52714d1b4ad916104273329bc923d40 Mon Sep 17 00:00:00 2001 From: Armeen Mahdian Date: Mon, 25 Apr 2022 09:29:32 -0500 Subject: [PATCH] caffe2: remove --- .../libraries/science/math/caffe2/default.nix | 151 ------------------ .../math/caffe2/fix_compilation_on_gcc7.patch | 46 ------ .../caffe2/update_clang_cvtsh_bugfix.patch | 55 ------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 7 - 5 files changed, 1 insertion(+), 259 deletions(-) delete mode 100644 pkgs/development/libraries/science/math/caffe2/default.nix delete mode 100644 pkgs/development/libraries/science/math/caffe2/fix_compilation_on_gcc7.patch delete mode 100644 pkgs/development/libraries/science/math/caffe2/update_clang_cvtsh_bugfix.patch diff --git a/pkgs/development/libraries/science/math/caffe2/default.nix b/pkgs/development/libraries/science/math/caffe2/default.nix deleted file mode 100644 index 9333d5cdfe8..00000000000 --- a/pkgs/development/libraries/science/math/caffe2/default.nix +++ /dev/null @@ -1,151 +0,0 @@ -{ stdenv, lib, config, fetchFromGitHub -, cmake -, glog, gflags, gtest -, protobuf, snappy -, python, future, six, python-protobuf, numpy, pydot -, eigen -, doxygen -, useCuda ? (config.cudaSupport or false), cudaPackages ? {} -, useCudnn ? (config.cudnnSupport or false) -, useOpenmp ? false, openmp ? null -, useOpencv3 ? true, opencv3 ? null -, useLeveldb ? false, leveldb ? null -, useLmdb ? true, lmdb ? null -, useRocksdb ? false, rocksdb ? null -, useZeromq ? false, zeromq ? null -, useMpi ? false, mpi ? null -# TODO: distributed computations -#, useGloo ? false -#, useNccl ? false -#, useNnpack ? false -}: - -let - inherit (cudaPackages) cudatoolkit cudnn; -in - -assert useCuda -> cudatoolkit != null; -assert useCudnn -> (useCuda && cudnn != null); -assert useOpencv3 -> opencv3 != null; -assert useLeveldb -> leveldb != null; -assert useLmdb -> lmdb != null; -assert useRocksdb -> rocksdb != null; -assert useZeromq -> zeromq != null; -assert useMpi -> mpi != null; - -let - # Third party modules that caffe2 holds as git submodules. - # Download them and create symlinks from caffe2/third_party. - installExtraSrc = extra: '' - rmdir "third_party/${extra.dst}" - ln -s "${extra.src}" "third_party/${extra.dst}" - ''; - - cub = { - src = fetchFromGitHub { - owner = "NVlabs"; - repo = "cub"; - rev = "v1.7.4"; - sha256 = "0ksd5n1lxqhm5l5cd2lps4cszhjkf6gmzahaycs7nxb06qci8c66"; - }; - dst = "cub"; - }; - - pybind11 = { - src = fetchFromGitHub { - owner = "pybind"; - repo = "pybind11"; - rev = "86e2ad4f77442c3350f9a2476650da6bee253c52"; - sha256 = "05gi58dirvc8fgm0avpydvidzsbh2zrzgfaq671ym09f6dz0bcgz"; - }; - dst = "pybind11"; - }; - - ccVersion = lib.getVersion stdenv.cc; -in - -stdenv.mkDerivation rec { - pname = "caffe2"; - version = "0.8.1"; - src = fetchFromGitHub { - owner = "caffe2"; - repo = "caffe2"; - rev = "v${version}"; - sha256 = "18y7zjc69j6n5642l9caddl641b0djf3pjn4wacdsc1wk1jiyqk8"; - }; - - nativeBuildInputs = [ cmake doxygen gtest ]; - outputs = [ "bin" "out" ]; - propagatedBuildOutputs = [ ]; # otherwise propagates out -> bin cycle - - buildInputs = [ glog gflags protobuf snappy eigen ] - ++ lib.optional useCuda cudatoolkit - ++ lib.optional useCudnn cudnn - ++ lib.optional useOpenmp openmp - ++ lib.optional useOpencv3 opencv3 - ++ lib.optional useLeveldb leveldb - ++ lib.optional useLmdb lmdb - ++ lib.optional useRocksdb rocksdb - ++ lib.optional useZeromq zeromq - ; - propagatedBuildInputs = [ numpy future six python-protobuf pydot ]; - - patches = lib.optional (stdenv.cc.isGNU && lib.versionAtLeast ccVersion "7.0.0") [ - ./fix_compilation_on_gcc7.patch - ] ++ lib.optional stdenv.cc.isClang [ ./update_clang_cvtsh_bugfix.patch ]; - - cmakeFlags = [ "-DBUILD_TEST=OFF" - "-DBUILD_PYTHON=ON" - ''-DUSE_CUDA=${if useCuda then "ON"else "OFF"}'' - ''-DUSE_OPENMP=${if useOpenmp then "ON"else "OFF"}'' - ''-DUSE_OPENCV=${if useOpencv3 then "ON"else "OFF"}'' - ''-DUSE_MPI=${if useMpi then "ON"else "OFF"}'' - ''-DUSE_LEVELDB=${if useLeveldb then "ON"else "OFF"}'' - ''-DUSE_LMDB=${if useLmdb then "ON"else "OFF"}'' - ''-DUSE_ROCKSDB=${if useRocksdb then "ON"else "OFF"}'' - ''-DUSE_ZMQ=${if useZeromq then "ON"else "OFF"}'' - "-DUSE_GLOO=OFF" - "-DUSE_NNPACK=OFF" - "-DUSE_NCCL=OFF" - "-DUSE_REDIS=OFF" - "-DUSE_FFMPEG=OFF" - ] - ++ lib.optional useCuda [ - "-DCUDA_TOOLKIT_ROOT_DIR=${cudatoolkit}" - "-DCUDA_FAST_MATH=ON" - "-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/gcc" - ]; - - preConfigure = '' - ${installExtraSrc cub} - ${installExtraSrc pybind11} - # XXX hack - export NIX_CFLAGS_COMPILE="-I ${eigen}/include/eigen3/ $NIX_CFLAGS_COMPILE" - ''; - - postInstall = '' - moveToOutput "bin" "$bin" - mkdir -p $out/lib/${python.libPrefix} - ln -s $out/ $out/${python.sitePackages} - ''; - - doCheck = false; - - meta = { - homepage = "https://caffe2.ai/"; - description = "A new lightweight, modular, and scalable deep learning framework"; - longDescription = '' - Caffe2 aims to provide an easy and straightforward way for you to experiment - with deep learning and leverage community contributions of new models and - algorithms. You can bring your creations to scale using the power of GPUs in the - cloud or to the masses on mobile with Caffe2's cross-platform libraries. - ''; - platforms = with lib.platforms; linux; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ yuriaisaka ]; - # fails to compile with - # error: invalid conversion from 'const char*' to 'char*' - # TODO: Remove usage of python2, protobuf overwrite - broken = true; - }; -} diff --git a/pkgs/development/libraries/science/math/caffe2/fix_compilation_on_gcc7.patch b/pkgs/development/libraries/science/math/caffe2/fix_compilation_on_gcc7.patch deleted file mode 100644 index f319f20233a..00000000000 --- a/pkgs/development/libraries/science/math/caffe2/fix_compilation_on_gcc7.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/caffe2/operators/recurrent_network_op.cc b/caffe2/operators/recurrent_network_op.cc -index dd4fded..5995e8a 100644 ---- a/caffe2/operators/recurrent_network_op.cc -+++ b/caffe2/operators/recurrent_network_op.cc -@@ -1,4 +1,4 @@ --#include "recurrent_network_op.h" -+#include "caffe2/operators/recurrent_network_op.h" - #include "caffe2/core/workspace.h" - - namespace caffe2 { -diff --git a/caffe2/operators/recurrent_network_op.h b/caffe2/operators/recurrent_network_op.h -index 55328e5..ea898bc 100644 ---- a/caffe2/operators/recurrent_network_op.h -+++ b/caffe2/operators/recurrent_network_op.h -@@ -762,8 +762,8 @@ class AccumulateInputGradientOp : public Operator { - USE_OPERATOR_CONTEXT_FUNCTIONS; - - bool RunOnDevice() override { -- const auto t = -- OperatorBase::Input>(0).template data()[0]; -+ const auto& t0 = OperatorBase::Input>(0); -+ const auto t = t0.template data()[0]; - auto& og = Input(1); - auto* g = Output(0); - -diff --git a/caffe2/queue/queue_ops.h b/caffe2/queue/queue_ops.h -index f2c0a33..642343f 100644 ---- a/caffe2/queue/queue_ops.h -+++ b/caffe2/queue/queue_ops.h -@@ -17,13 +17,10 @@ class CreateBlobsQueueOp final : public Operator { - name(operator_def.output().Get(0)) {} - - bool RunOnDevice() override { -- const auto capacity = -- OperatorBase::template GetSingleArgument("capacity", 1); -- const auto numBlobs = -- OperatorBase::template GetSingleArgument("num_blobs", 1); -+ const auto capacity = GetSingleArgument("capacity", 1); -+ const auto numBlobs = GetSingleArgument("num_blobs", 1); - const auto enforceUniqueName = -- OperatorBase::template GetSingleArgument( -- "enforce_unique_name", false); -+ GetSingleArgument("enforce_unique_name", false); - const auto fieldNames = - OperatorBase::template GetRepeatedArgument("field_names"); - CAFFE_ENFORCE_EQ(this->OutputSize(), 1); diff --git a/pkgs/development/libraries/science/math/caffe2/update_clang_cvtsh_bugfix.patch b/pkgs/development/libraries/science/math/caffe2/update_clang_cvtsh_bugfix.patch deleted file mode 100644 index d908cb6ba80..00000000000 --- a/pkgs/development/libraries/science/math/caffe2/update_clang_cvtsh_bugfix.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff --git a/caffe2/perfkernels/cvtsh_ss_bugfix.h b/caffe2/perfkernels/cvtsh_ss_bugfix.h -index bd06681..00172b7 100644 ---- a/caffe2/perfkernels/cvtsh_ss_bugfix.h -+++ b/caffe2/perfkernels/cvtsh_ss_bugfix.h -@@ -1,10 +1,36 @@ -+/** -+ * Copyright (c) 2016-present, Facebook, Inc. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ */ -+ - #pragma once - --#if defined(__APPLE__) && (__clang_major__ < 8) -+// Apple clang was fixed in 8.1 -+#if defined(__apple_build_version__) && ((__clang_major__ < 8) || ((__clang_major__ == 8) && (__clang_minor__ < 1))) -+#define __APPLE_NEED_FIX 1 -+#endif -+ -+// Regular clang was fixed in 3.9 -+#if defined(__clang__) && (__clang_major__ < 4) && (__clang_minor__ < 9) -+#define __CLANG_NEED_FIX 1 -+#endif -+ -+#if __APPLE_NEED_FIX || __CLANG_NEED_FIX - - #include - --// This version of apple clang has a bug that _cvtsh_ss is not defined, see -+// This version of clang has a bug that _cvtsh_ss is not defined, see - // https://reviews.llvm.org/D16177 - static __inline float - __attribute__((__always_inline__, __nodebug__, __target__("f16c"))) -@@ -15,7 +41,10 @@ _cvtsh_ss(unsigned short a) - return r[0]; - } - --#endif // defined(__APPLE__) && (__clang_major__ < 8) -+#endif // __APPLE_NEED_FIX || __CLANG_NEED_FIX -+ -+#undef __APPLE_NEED_FIX -+#undef __CLANG_NEED_FIX - - #ifdef _MSC_VER - diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 437fd6b8aba..4f5f83d0834 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -142,6 +142,7 @@ mapAliases ({ ### C ### caddy1 = throw "caddy 1.x has been removed from nixpkgs, as it's unmaintained: https://github.com/caddyserver/caddy/blob/master/.github/SECURITY.md#supported-versions"; # Added 2020-10-02 + caffe2 = throw "caffe2 has been removed: subsumed under the PyTorch project"; # Added 2022-04-25 calibre-py2 = throw "calibre-py2 has been removed from nixpkgs, as calibre has upgraded to python 3. Please use calibre as replacement"; # Added 2021-01-13 calibre-py3 = throw "calibre-py3 has been removed from nixpkgs, as calibre's default python version is now 3. Please use calibre as replacement"; # Added 2021-01-13 callPackage_i686 = pkgsi686Linux.callPackage; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bfed559ece1..7dcbbbe745e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -33299,13 +33299,6 @@ with pkgs; caffeWithCuda = caffe.override { cudaSupport = true; }; - caffe2 = callPackage ../development/libraries/science/math/caffe2 (rec { - inherit (python3Packages) python future six numpy pydot; - protobuf = protobuf3_1; - python-protobuf = python3Packages.protobuf.override { inherit protobuf; }; - opencv3 = opencv3WithoutCuda; # Used only for image loading. - }); - caffeine-ng = callPackage ../tools/X11/caffeine-ng {}; cntk = callPackage ../applications/science/math/cntk {