{lib}[foss/2025b] TensorFlow v2.21.0 - #26602
Conversation
Updated software
|
| 'buildopts': '--action_env=CPATH= --host_action_env=CPATH=', | ||
| 'testopts': ( | ||
| '--action_env=CPATH= --host_action_env=CPATH= ' | ||
| '--test_env=HOME=/tmp --test_timeout=3600 --test_size_filters=small ' | ||
| ), | ||
| 'testopts_gpu': ( | ||
| '--action_env=CPATH= --host_action_env=CPATH= ' | ||
| '--test_env=HOME=/tmp --test_timeout=3600 --test_size_filters=small ' | ||
| '--run_under=//tensorflow/tools/ci_build/gpu_build:parallel_gpu_execute ' | ||
| ), | ||
| # EasyBuild 5.3.0's TF_SYSTEM_LIBS mapping is incompatible with TensorFlow 2.21 for these entries: | ||
| # absl_py has no usable system repository, while boringssl is auto-enabled whenever OpenSSL is loaded. | ||
| # Run Bazel in batch mode to avoid Netty server startup crashes on filesystems without robust locking. | ||
| # CPATH is cleared for Bazel actions so installed headers cannot shadow vendored repository headers. | ||
| 'prebuildopts': ( | ||
| "printf 'startup --batch\\n' >> .bazelrc && " | ||
| "sed -i 's/absl_py,//; s/,absl_py//; s/boringssl,//; s/,boringssl//' .tf_configure.bazelrc && " | ||
| ), |
There was a problem hiding this comment.
some stuff in this block looks like it really belong on the TensorFlow easyblock...
@Flamefire thoughts on this?
There was a problem hiding this comment.
Definitely. The comment says the easyblock does something wrong, so that should be fixed in the easyblock
absl_py has no usable system repository
What does this mean exactly? It is mentioned at least: https://github.com/tensorflow/tensorflow/blob/651b8e62e7810de374ddb3f3c983ff9140aa260f/third_party/systemlibs/syslibs_configure.bzl#L12
while boringssl is auto-enabled whenever OpenSSL is loaded.
This is correct and intentional. Looks like you are disabling it here. Why? You cannot mix OpenSSL and BoringSSL IIRC
There was a problem hiding this comment.
You are right, I originally had these changes to get past certain build errors, but this might not be needed anymore. Let me retest without these absl_py and BoringSSL changes, in case I will post here the problem, or make a PR at easyblocks
| ] | ||
|
|
||
| postinstallcmds = [ | ||
| 'mkdir -p %(installdir)s/bin && ln -sf "$EBROOTTENSORBOARD/bin/tensorboard" %(installdir)s/bin/tensorboard', |
There was a problem hiding this comment.
@bedroesb Any particular reason for this?
If tensorboard is a dependency, then the command will already be available when this TensorFlow module is loaded, I don't really see the point of doing this?
There was a problem hiding this comment.
I had an error related to this, but let me retry without, many things have changed
|
@boegelbot please test @ jsc-zen3 |
|
@boegel: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de PR test command '
Test results coming soon (I hope)... Details- notification for comment with ID 5195244561 processed Message to humans: this is just bookkeeping information for me, |
|
Test report by @boegelbot |
| '-//tensorflow/core/kernels/mkl:mkl_fused_batch_norm_op_test', | ||
| '-//tensorflow/core/ir/importexport/tests/roundtrip/...', | ||
| ], | ||
| 'buildopts': '--action_env=CPATH= --host_action_env=CPATH=', |
There was a problem hiding this comment.
resetting CPATH all over the place looks wrong. Why is that done?
| 'buildopts': '--action_env=CPATH= --host_action_env=CPATH=', | ||
| 'testopts': ( | ||
| '--action_env=CPATH= --host_action_env=CPATH= ' | ||
| '--test_env=HOME=/tmp --test_timeout=3600 --test_size_filters=small ' |
There was a problem hiding this comment.
HOME could be included to be set in the easyblock if not done yet
|
@boegel and @Flamefire Making this recipe was a lot harder then bumping some versions or listing some python dependencies (how I did my previous recipes). I had to crawl through one compilation error after another, and had to use LLMs to make sense of it. Off course this means that the delivered recipe is beyond my own understanding. I did this time include the errors in the PR I try to solve with the changes: easybuilders/easybuild-easyblocks#4193. I understand that this is not ideal and I am grateful for your time! Honest question, what is the least time consuming for the team, requesting a module in the issues, or trying to make one like I did here? I off course make sure all tests complete and it compiles :) |
|
I'm aware that TensorFlow with Bazel is a beast, congrats for making it so far, this is no small feat!
Personally you did the right thing. This allows to look exactly at the errors and changes you've seen and done already. There is a good chance that this is enough already or only small adjustments are required, like moving the test option to the easyblock to avoid copying it to all easyconfigs. |
|
locally, with the newly cleaned up easyblock changes, I got a Don't know how this PR picks up these changes in my other pulls request, but in case, they should work together :) |
|
Hey! Thank you for the investigation! Do you think my commits can be preserved? You can also commit straight onto my Pull request if you want off course! Some of the changes I also used to have but I cleaned them up again afterwords. I wonder how it comes that my latest version in combination with the easyblock did compile fine 🤔 |
Sure! I cannot add directly but I can open a PR to your repo branch.
Which ones?
Possibly because your easyblock effectively removed all systemlibs, especially as cURL isn't included. And it was then using their own toolchain (downloaded clang) instead of our compilers and rpath wrappers Will be on vacation so it will take a bit of time, feel free to check and comment on my PRs. |
Adds an easyconfig for
TensorFlow 2.21.0withfoss/2025b, usingflatbuffers-python 25.2.10to avoid the CI dependency conflict. The recipe keeps TensorFlow’s C/C++ dependencies vendored, runs Bazel in batch mode to avoid lock/server startup issues, and adds abin/tensorboardsymlink for the TensorFlow sanity check. Build and tests passed:827/827tests.