1) Hermetic CUDA rules allow building wheels with GPU support on a machine without GPUs, as well as running Bazel GPU tests on a machine with only GPUs and NVIDIA driver installed. When `--config=cuda` is provided in Bazel options, Bazel will download CUDA, CUDNN and NCCL redistributions in the cache, and use them during build and test phases.
[Default location of CUNN redistributions](https://developer.download.nvidia.com/compute/cudnn/redist/)
[Default location of CUDA redistributions](https://developer.download.nvidia.com/compute/cuda/redist/)
[Default location of NCCL redistributions](https://pypi.org/project/nvidia-nccl-cu12/#history)
2) To include hermetic CUDA rules in your project, add the following in the WORKSPACE of the downstream project dependent on XLA.
Note: use `@local_tsl` instead of `@tsl` in Tensorflow project.
```
load(
"@tsl//third_party/gpus/cuda/hermetic:cuda_json_init_repository.bzl",
"cuda_json_init_repository",
)
cuda_json_init_repository()
load(
"@cuda_redist_json//:distributions.bzl",
"CUDA_REDISTRIBUTIONS",
"CUDNN_REDISTRIBUTIONS",
)
load(
"@tsl//third_party/gpus/cuda/hermetic:cuda_redist_init_repositories.bzl",
"cuda_redist_init_repositories",
"cudnn_redist_init_repository",
)
cuda_redist_init_repositories(
cuda_redistributions = CUDA_REDISTRIBUTIONS,
)
cudnn_redist_init_repository(
cudnn_redistributions = CUDNN_REDISTRIBUTIONS,
)
load(
"@tsl//third_party/gpus/cuda/hermetic:cuda_configure.bzl",
"cuda_configure",
)
cuda_configure(name = "local_config_cuda")
load(
"@tsl//third_party/nccl/hermetic:nccl_redist_init_repository.bzl",
"nccl_redist_init_repository",
)
nccl_redist_init_repository()
load(
"@tsl//third_party/nccl/hermetic:nccl_configure.bzl",
"nccl_configure",
)
nccl_configure(name = "local_config_nccl")
```
PiperOrigin-RevId: 662981325
This is needed for hermetic CUDA integration in Google ML projects since tensorRT is not distributed in the same free way as other CUDA/CUDNN distributives.
PiperOrigin-RevId: 662601190
Currently, `no_oss` is used to exclude a test from running in the official TF OSS test infrastructure. However, it is difficult to distinguish between temporary and permanent exclusions. For example, a test may be disabled temporarily if it is broken, or it may be designed to not run on OSS permanently. To address this issue, we introduce a new tag `oss_excluded` for platform exclusion design. `no_oss` will now be considered to disable broken tests, while `oss_excluded` will be used to permanently exclude a test from running on OSS.
PiperOrigin-RevId: 516372702
Currently, `no_windows` is used to exclude a test from running in the windows environment. However, it is difficult to distinguish between temporary and permanent exclusions. For example, a test may be disabled temporarily if it is broken, or it may be designed to not run on windows environment permanently. To address this issue, we introduce a new tag `windows_excluded` for platform exclusion design. `no_windows` will now be considered to disable broken tests, while `windows_excluded` will be used to permanently exclude a test from running on windows environment.
PiperOrigin-RevId: 515716934
Currently, `no_mac` or `nomac` is used to exclude a test from running in the mac environment. However, it is difficult to distinguish between temporary and permanent exclusions. For example, a test may be disabled temporarily if it is broken, or it may be designed to not run on mac environment permanently. To address this issue, we introduce a new tag `mac_excluded` for platform exclusion design. `no_mac` or `nomac` will now be considered to disable broken tests, while `mac_excluded` will be used to permanently exclude a test from running on mac environment.
PiperOrigin-RevId: 515676485
-Switch ROCm builds to use ROCm5.2
-Fix Tensorflow build failure with ROCm 5.2, due to new templates in rocmprim header
-Changes related to hipsparse build failure fix.
-Changes related to hipsolver/rocsolver build failure fix.
-Removing the setting of ROCBLAS_TENSILE_LIBPATH in configure.py
-Update install_bazel script to match .bazelversion
The commit 3484416b49 removed the
'rules_cc_toolchains' call from the bazel configuration. After that,
the build process is calling 'lld' to link several binaries, causing
problems on ppc64le arch.
This patch set the 'gold' linker as default in the configure script.
Eigen removed the dynamic dispatch by default. Now, it's necessary to add
EIGEN_ALTIVEC_ENABLE_MMA_DYNAMIC_DISPATCH=1 to enable this feature if
the linker version is 2.35 or greater.
7b10795e39591906477b