Advertisement
Guest User

Untitled

a guest
Feb 10th, 2021
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.62 KB | None | 0 0
  1. { pkgs ? import <nixpkgs> { } }:
  2.  
  3. with pkgs;
  4.  
  5. let
  6. eigen = pkgs.fetchzip {
  7. url = "https://storage.googleapis.com/mirror.tensorflow.org/gitlab.com/libeigen/eigen/-/archive/352f1422d3ceea19a04cab297c6339e0870e1c6c/eigen-352f1422d3ceea19a04cab297c6339e0870e1c6c.tar.gz";
  8. #url = "https://gitlab.com/libeigen/eigen/-/archive/352f1422d3ceea19a04cab297c6339e0870e1c6c/eigen-352f1422d3ceea19a04cab297c6339e0870e1c6c.tar.gz";
  9. sha256 = "0w9nx9xcg2ac9rmcfffg9nxr29wswi7f7f9cy9slf5z523p979mz";
  10. };
  11. gemmlowp = pkgs.fetchzip {
  12. url = "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/gemmlowp/archive/fda83bdc38b118cc6b56753bd540caa49e570745.zip";
  13. sha256 = "1sbp8kmr2azwlvfbzryy1frxi99jhsh1nc93bdbxdf8zdgpv0kxl";
  14. };
  15. ruy = pkgs.fetchzip {
  16. url = "https://github.com/google/ruy/archive/4790797d11a81f96baf24f3731fd3ca44c2c5f8b.zip";
  17. sha256 = "0b0ydm8q4zqc6g2yzx5j9mgnyf4xck5faxs9bhixvvv1d1fn7vii";
  18. };
  19. googletest = pkgs.fetchzip {
  20. url = "https://github.com/google/googletest/archive/release-1.8.0.tar.gz";
  21. sha256 = "0bjlljmbf8glnd9qjabx73w6pd7ibv43yiyngqvmvgxsabzr8399";
  22. };
  23. absl = pkgs.fetchzip {
  24. url = "https://storage.googleapis.com/mirror.tensorflow.org/github.com/abseil/abseil-cpp/archive/df3ea785d8c30a9503321a3d35ee7d35808f190d.tar.gz";
  25. sha256 = "035bffayslawc19q2gmlkr6n6r7k7mvriaq7352rv6gyzaplr98w";
  26. };
  27. neon = pkgs.fetchzip {
  28. url = "https://github.com/intel/ARM_NEON_2_x86_SSE/archive/master.zip";
  29. sha256 = "0ai5c9gkrwafabq9naq3ycxdc394n95xiq0wharg9r5wpfh8fg3b";
  30. };
  31. farmhash = pkgs.fetchzip {
  32. url = "https://storage.googleapis.com/mirror.tensorflow.org/github.com/google/farmhash/archive/816a4ae622e964763ca0862d9dbd19324a1eaf45.tar.gz";
  33. sha256 = "1mqxsljq476n1hb8ilkrpb39yz3ip2hnc7rhzszz4sri8ma7qzp6";
  34. };
  35. flatbuffers = pkgs.fetchzip {
  36. url = "https://github.com/google/flatbuffers/archive/v1.12.0.tar.gz";
  37. sha256 = "0f7xd66vc1lzjbn7jzd5kyqrgxpsfxi4zc7iymhb5xrwyxipjl1g";
  38. };
  39. fft2d = pkgs.fetchzip {
  40. url ="https://storage.googleapis.com/mirror.tensorflow.org/www.kurims.kyoto-u.ac.jp/~ooura/fft2d.tgz";
  41. sha256 = "10f1qrk0n2pal6qndh2nk7vy6gvdbamc6myzbpqdp33c308gswvh";
  42. };
  43. fp16 = pkgs.fetchzip {
  44. url = "https://github.com/Maratyszcza/FP16/archive/febbb1c163726b5db24bed55cc9dc42529068997.zip";
  45. sha256 = "1ayrddk2zdkpzixvrlkvn4az2kx5jnivxhvffr8177yxjslrmbfw";
  46. #sha256 = ""; # Not provided
  47. };
  48. cpuinfo = pkgs.fetchzip {
  49. url = "https://github.com/pytorch/cpuinfo/archive/c2092219e7c874783a00a62edb94ddc672f57ab3.zip";
  50. sha256 = "14bbkl82380144y55sr7awkpc9agwnpr7zhkhjm0cpa4wij3vshn";
  51. };
  52. downloaddir = "tensorflow/lite/tools/make/downloads";
  53. in
  54. stdenv.mkDerivation {
  55. name = "tensorflow";
  56. version = "2.4.0";
  57.  
  58. src = pkgs.fetchFromGitHub {
  59. owner = "tensorflow";
  60. repo = "tensorflow";
  61. rev = "21273f6e323173c79e614d8f2dd4608416a8f02c";
  62. sha256 = "1halzg9288hzwh0fpxq46nh2iq58vxg8jilv976q6p6v1788r43a";
  63. fetchSubmodules = false;
  64. };
  65.  
  66. nativeBuildInputs = [
  67. python3
  68. which
  69. bazelisk
  70. bazel
  71. bash
  72. curl
  73. breakpointHook
  74. pkg-config
  75. ];
  76. buildInputs = [
  77. eigen
  78. gemmlowp
  79. ruy
  80. googletest
  81. absl
  82. neon
  83. farmhash
  84. flatbuffers
  85. fft2d
  86. fp16
  87. cpuinfo
  88. ];
  89. # patchShebangs ./tensorflow/lite/tools/make/download_dependencies.sh
  90. patchPhase = ''
  91. patchShebangs ./configure
  92. patchShebangs ./tensorflow/lite/tools/make/Makefile
  93. patchShebangs ./tensorflow/lite/tools/make/build_lib.sh
  94. substituteInPlace ./tensorflow/lite/tools/make/Makefile \
  95. --replace "/bin/bash" "${pkgs.bash}/bin/bash"
  96. '';
  97.  
  98. configurePhase = ''
  99. mkdir ${downloaddir}
  100. cp ${eigen} -pr ${downloaddir}/eigen
  101. cp ${gemmlowp} -pr ${downloaddir}/gemmlowp
  102. cp ${ruy} -pr ${downloaddir}/ruy
  103. cp ${googletest} -pr ${downloaddir}/googletest
  104. cp ${absl} -pr ${downloaddir}/absl
  105. cp ${neon} -pr ${downloaddir}/neon_2_sse
  106. cp ${farmhash} -pr ${downloaddir}/farmhash
  107. cp ${flatbuffers} -pr ${downloaddir}/flatbuffers
  108. cp ${fft2d} -pr ${downloaddir}/fft2d
  109. cp ${fp16} -pr ${downloaddir}/fp16
  110. cp ${cpuinfo} -pr ${downloaddir}/cpuinfo
  111.  
  112. substituteInPlace ./tensorflow/lite/tools/make/downloads/eigen/Eigen/src/Core/arch/NEON/Complex.h \
  113. --replace "static uint32x4_t p4ui_CONJ_XOR = vld1q_u32( conj_XOR_DATA );" "static uint32x4_t p4ui_CONJ_XOR; // = vld1q_u32( conj_XOR_DATA ); - Removed by script"
  114.  
  115. substituteInPlace ./tensorflow/lite/tools/make/downloads/eigen/Eigen/src/Core/arch/NEON/Complex.h \
  116. --replace "static uint32x2_t p2ui_CONJ_XOR = vld1_u32( conj_XOR_DATA );" "static uint32x2_t p2ui_CONJ_XOR;// = vld1_u32( conj_XOR_DATA ); - Removed by scripts"
  117.  
  118. substituteInPlace ./tensorflow/lite/tools/make/downloads/eigen/Eigen/src/Core/arch/NEON/Complex.h \
  119. --replace "static uint64x2_t p2ul_CONJ_XOR = vld1q_u64( p2ul_conj_XOR_DATA );" "static uint64x2_t p2ul_CONJ_XOR;// = vld1q_u64( p2ul_conj_XOR_DATA ); - Removed by script"
  120. '';
  121. #configurePhase = ''echo "do nothing"'';
  122. #dontAddPrefix = true;
  123. # bash tensorflow/lite/tools/make/download_dependencies.sh
  124. #buildPhase = ''echo "test this now"; cp '';
  125. # SCRIPT_DIR="$(cd "$(dirname "$\{BASH_SOURCE[0]}")" && pwd)"
  126. # echo "this is where I am"
  127. # echo $SCRIPT_DIR
  128. # make -j 4 -f tensorflow/lite/tools/make/Makefile
  129.  
  130. buildPhase = ''
  131. cd tensorflow/lite/tools/make && bash build_lib.sh
  132. '';
  133. # cd tensorflow/lite/tools/make && bash build_lib.sh
  134.  
  135. #"make -j 4 -C . -f tensorflow/lite/tools/make/Makefile";
  136.  
  137. # postPatch = "patchShebangs bin";
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement