# IT4Innovations 2022 # JK # Taken from pr 16620 # write a patch for protobuf error (use existing 2.9.1 protobuf patch as template) easyblock = 'PythonBundle' name = 'TensorFlow' version = '2.10.0' versionsuffix = '-CUDA-%(cudaver)s' homepage = 'https://www.tensorflow.org/' description = "An open-source software library for Machine Intelligence" toolchain = {'name': 'foss', 'version': '2022a'} toolchainopts = {'pic': True} builddependencies = [ ('Bazel', '5.1.1'), ('protobuf', '3.19.4'), # git 2.x required, see also https://github.com/tensorflow/tensorflow/issues/29053 ('git', '2.36.0', '-nodocs'), ('pybind11', '2.9.2'), ('UnZip', '6.0'), ('LLVM', '14.0.3'), # for debugging with llvm-symbolizer, to be removed ] dependencies = [ ('CUDA', '11.7.0', '', SYSTEM), ('cuDNN', '8.4.1.50', versionsuffix, SYSTEM), ('NCCL', '2.12.12', versionsuffix), ('Python', '3.10.4'), ('h5py', '3.7.0'), ('cURL', '7.83.0'), ('double-conversion', '3.2.0'), ('flatbuffers', '2.0.0'), ('giflib', '5.2.1'), ('hwloc', '2.7.1'), ('ICU', '71.1'), ('JsonCpp', '1.9.5'), ('libjpeg-turbo', '2.1.3'), ('LMDB', '0.9.29'), ('NASM', '2.15.05'), ('nsync', '1.25.0'), ('SQLite', '3.38.3'), ('protobuf-python', '3.19.4'), ('flatbuffers-python', '2.0'), ('libpng', '1.6.37'), ('snappy', '1.1.9'), ('zlib', '1.2.12'), ('networkx', '2.8.4'), # required for pythran ] use_pip = True sanity_pip_check = True # Dependencies created and updated using findPythonDeps.sh: # https://gist.github.com/Flamefire/49426e502cd8983757bd01a08a10ae0d exts_list = [ ('wrapt', '1.14.1', { 'checksums': ['380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d'], }), ('termcolor', '1.1.0', { 'checksums': ['1d6d69ce66211143803fbc56652b41d73b4a400a2891d7bf7a1cdf4c02de613b'], }), ('tensorflow-estimator', '2.9.0', { 'source_tmpl': 'tensorflow_estimator-2.9.0-py2.py3-none-any.whl', 'checksums': ['e9762bb302f51bc1eb2f35d19f0190a6a2d809d754d5def788c4328fe3746744'], }), ('Werkzeug', '2.2.2', { 'checksums': ['7ea2d48322cc7c0f8b3a215ed73eabd7b5d75d0b50e31ab006286ccff9e00b8f'], }), ('tensorboard-plugin-wit', '1.8.1', { 'source_tmpl': 'tensorboard_plugin_wit-1.8.1-py3-none-any.whl', 'checksums': ['ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe'], }), ('tensorboard-data-server', '0.6.1', { 'source_tmpl': 'tensorboard_data_server-0.6.1-py3-none-manylinux2010_x86_64.whl', 'checksums': ['d8237580755e58eff68d1f3abefb5b1e39ae5c8b127cc40920f9c4fb33f4b98a'], }), ('Markdown', '3.4.1', { 'checksums': ['3b809086bb6efad416156e00a0da66fe47618a5d6918dd688f53f40c8e4cfeff'], }), ('grpcio', '1.47.0', { 'modulename': 'grpc', 'preinstallopts': "export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=%(parallel)s && ", 'checksums': ['5dbba95fab9b35957b4977b8904fc1fa56b302f9051eff4d7716ebb0c087f801'], }), ('oauthlib', '3.2.0', { 'checksums': ['23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2'], }), ('requests-oauthlib', '1.3.1', { 'checksums': ['75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a'], }), ('rsa', '4.9', { 'checksums': ['e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21'], }), ('pyasn1-modules', '0.2.8', { 'checksums': ['905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e'], }), ('cachetools', '5.2.0', { 'checksums': ['6a94c6402995a99c3970cc7e4884bb60b4a8639938157eeed436098bf9831757'], }), ('google-auth', version, { 'modulename': 'google.auth', 'checksums': ['7904dbd44b745c7323fef29565adee2fe7ff48473e2d94443aced40b0404a395'], }), ('google-auth-oauthlib', '0.4.6', { 'checksums': ['a90a072f6993f2c327067bf65270046384cda5a8ecb20b94ea9a687f1f233a7a'], }), ('absl-py', '1.2.0', { 'modulename': 'absl', 'checksums': ['f568809938c49abbda89826223c992b630afd23c638160ad7840cfe347710d97'], }), ('tensorboard', version, { 'source_tmpl': 'tensorboard-2.9.1-py3-none-any.whl', 'checksums': ['baa727f791776f9e5841d347127720ceed4bbd59c36b40604b95fb2ae6029276'], }), ('opt-einsum', '3.3.0', { 'source_tmpl': 'opt_einsum-3.3.0-py3-none-any.whl', 'checksums': ['2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147'], }), ('libclang', '14.0.6', { 'modulename': 'clang', 'checksums': ['9052a8284d8846984f6fa826b1d7460a66d3b23a486d782633b42b6e3b418789'], }), ('Keras-Preprocessing', '1.1.2', { 'source_tmpl': 'Keras_Preprocessing-1.1.2-py2.py3-none-any.whl', 'checksums': ['7b82029b130ff61cc99b55f3bd27427df4838576838c5b2f65940e4fcec99a7b'], }), ('keras', '2.9.0', { 'source_tmpl': 'keras-2.9.0-py2.py3-none-any.whl', 'checksums': ['55911256f89cfc9343c9fbe4b61ec45a2d33d89729cbe1ab9dcacf8b07b8b6ab'], }), ('google-pasta', '0.2.0', { 'modulename': 'pasta', 'checksums': ['c9f2c8dfc8f96d0d5808299920721be30c9eec37f2389f28904f454565c8a16e'], }), ('astor', '0.8.1', { 'checksums': ['6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e'], }), ('astunparse', '1.6.3', { 'checksums': ['5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872'], }), ('gast', '0.4.0', { 'checksums': ['40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1'], }), ('pythran', '0.9.11', { 'checksums': ['a317f91e2aade9f6550dc3bf40b5caeb45b7e012daf27e2b3e4ad928edb01667'], }), ('beniget', '0.3.0', { 'checksums': ['062c893be9cdf87c3144fb15041cce4d81c67107c1591952cd45fdce789a0ff1'], }), ('dill', '0.3.6', { 'checksums': ['e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373'], }), ('portpicker', '1.5.2', { 'checksums': ['c55683ad725f5c00a41bc7db0225223e8be024b1fa564d039ed3390e4fd48fb3'], }), ('tblib', '1.7.0', { 'checksums': ['059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c'], }), (name, version, { 'patches': [ 'TensorFlow-2.1.0_fix-cuda-build.patch', 'TensorFlow-2.4.0_add-ldl.patch', 'TensorFlow-2.4.0_dont-use-var-lock.patch', 'TensorFlow-2.5.0_add-support-for-large-core-systems.patch', 'TensorFlow-2.5.0_disable-avx512-extensions.patch', 'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch', 'TensorFlow-2.5.0_fix-crash-on-shutdown.patch', #'TensorFlow-2.7.1_remove-io-gcs-dependency.patch', 'TensorFlow-2.7.1_fix_cpu_count.patch', #'TensorFlow-2.9.1_fix-protobuf-include-def.patch', ], 'source_tmpl': 'v%(version)s.tar.gz', 'source_urls': ['https://github.com/tensorflow/tensorflow/archive/'], 'test_script': 'TensorFlow-2.x_mnist-test.py', 'test_tag_filters_cpu': '-gpu,-tpu,-no_cuda_on_cpu_tap,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only', 'test_tag_filters_gpu': 'gpu,-no_gpu,-nogpu,-gpu_cupti,-no_cuda11,-no_pip,-no_oss,-oss_serial,-benchmark-test,-v1only', 'test_targets': [ '//tensorflow/core/...', '-//tensorflow/core:example_java_proto', '-//tensorflow/core/example:example_protos_closure', '//tensorflow/cc/...', '//tensorflow/c/...', '//tensorflow/python/...', '-//tensorflow/c/eager:c_api_test_gpu', '-//tensorflow/c/eager:c_api_distributed_test', '-//tensorflow/c/eager:c_api_distributed_test_gpu', '-//tensorflow/c/eager:c_api_cluster_test_gpu', '-//tensorflow/c/eager:c_api_remote_function_test_gpu', '-//tensorflow/c/eager:c_api_remote_test_gpu', '-//tensorflow/core/common_runtime:collective_param_resolver_local_test', '-//tensorflow/core/common_runtime:mkl_layout_pass_test', '-//tensorflow/core/kernels/mkl:mkl_fused_ops_test', '-//tensorflow/core/kernels/mkl:mkl_fused_batch_norm_op_test', '-//tensorflow/core/ir/importexport/tests/roundtrip/...', ], 'testopts': "--test_timeout=3600 --test_size_filters=small", 'testopts_gpu': "--test_timeout=3600 --test_size_filters=small --run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute", 'with_xla': True, 'checksums': [ {'v2.10.0.tar.gz': 'b5a1bb04c84b6fe1538377e5a1f649bb5d5f0b2e3625a3c526ff3a8af88633e8'}, {'TensorFlow-2.1.0_fix-cuda-build.patch': '78c20aeaa7784b8ceb46238a81e8c2461137d28e0b576deeba8357d23fbe1f5a'}, {'TensorFlow-2.4.0_add-ldl.patch': '917ee7282e782e48673596d8917c3207e60e0851bb9acf230a2a439b067af2e3'}, {'TensorFlow-2.4.0_dont-use-var-lock.patch': 'b14f2493fd2edf79abd1c4f2dde6c98a3e7d5cb9c25ab9386df874d5f072d6b5'}, {'TensorFlow-2.5.0_add-support-for-large-core-systems.patch': '915f3477d6407fafd48269fe1e684a05ce361d9b9b85e58686682df87760f636'}, {'TensorFlow-2.5.0_disable-avx512-extensions.patch': '3655ce24c97569ac9738c07cac85347ba6f5c815ada95b19b606ffa46d4dda03'}, {'TensorFlow-2.5.0-fix-alias-violation-in-absl.patch': '12454fda3330fb45cd380377e283f04488b40e0b8ae7378e786ddf731a581f75'}, {'TensorFlow-2.5.0_fix-crash-on-shutdown.patch': '578c7493221ebd3dc25ca43d63a72cbb28fdf4112b1e2baa7390f25781bd78fd'}, #{'TensorFlow-2.7.1_remove-io-gcs-dependency.patch': # '01c439749938f9fc23fe8de17592460aa46e201575a3f9465bfb6b39ca50ef20'}, {'TensorFlow-2.7.1_fix_cpu_count.patch': '5427a4cff0afc2fe5b24776ae9ca3616c56a79c1fde0025b37bec24837bb0698'}, #{'TensorFlow-2.9.1_fix-protobuf-include-def.patch': # '97ce554516857e6f94415bdd8a8cb201abb34e9297a4946f91143587f110eb6d'}, ], }), ('promise', '2.3', { 'checksums': ['dfd18337c523ba4b6a58801c164c1904a9d4d1b1747c7d5dbf45b693a49d93d0'], }), #('googleapis-common-protos', '1.56.4', { # 'modulename': 'google', # 'checksums': ['c25873c47279387cfdcbdafa36149887901d36202cb645a0e4f29686bf6e4417'], #}), ('tensorflow_metadata', '1.10.0', { 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', 'checksums': ['e3ff528496105c0d73b2a402877525b1695635378fbe5c1b47ac7b3780816bb3'], }), ('etils', '0.8.0', { 'checksums': ['d1d5af7bd9c784a273c4e1eccfaa8feaca5e0481a08717b5313fa231da22a903'], }), ('tensorflow-datasets', '4.7.0', { 'source_tmpl': 'v%(version)s.tar.gz', 'source_urls': ['https://github.com/tensorflow/datasets/archive'], 'checksums': ['ed7c3b959d10ba762137e18b93631ab42f4ed0915bc3d9ce98ee66eef9c61418'], }), ] cuda_compute_capabilities = ['8.0'] moduleclass = 'lib'