نمای کلی و مثال های استفاده در پروژه rules_ml_toolchain آورده شده است.
منسوخ شده: استفاده غیرهرماتیک CUDA/CUDNN
اگرچه استفاده غیرهرمتیک CUDA/CUDNN منسوخ شده است، ممکن است برای برخی آزمایشها که در حال حاضر به طور رسمی پشتیبانی نمیشوند (به عنوان مثال، ساختن چرخها در ویندوز با CUDA) استفاده شود.
در اینجا مراحل استفاده از CUDA غیر هرمتیک نصب شده به صورت محلی در پروژه های Google ML آمده است:
تماسهای قوانین مخزن هرمتیک CUDA را از فایل
WORKSPACE
پروژه وابسته به XLA حذف کنید.تماسها را به قوانین مخزن CUDA غیرهرمتیک در پایین فایل
WORKSPACE
اضافه کنید.برای XLA و JAX:
load("@xla//third_party/gpus:cuda_configure.bzl", "cuda_configure") cuda_configure(name = "local_config_cuda") load("@xla//third_party/nccl:nccl_configure.bzl", "nccl_configure") nccl_configure(name = "local_config_nccl")
برای تنسورفلو:
load("@local_xla//third_party/gpus:cuda_configure.bzl", "cuda_configure") cuda_configure(name = "local_config_cuda") load("@local_xla//third_party/nccl:nccl_configure.bzl", "nccl_configure") nccl_configure(name = "local_config_nccl")
متغیرهای محیطی زیر را مستقیماً در پوسته خود یا در فایل
.bazelrc
مطابق شکل زیر تنظیم کنید:build:cuda --action_env=TF_CUDA_VERSION=<locally installed cuda version> build:cuda --action_env=TF_CUDNN_VERSION=<locally installed cudnn version> build:cuda --action_env=TF_CUDA_COMPUTE_CAPABILITIES=<CUDA compute capabilities> build:cuda --action_env=LD_LIBRARY_PATH=<CUDA/CUDNN libraries folder locations divided by “:” sign> build:cuda --action_env=CUDA_TOOLKIT_PATH=<preinstalled CUDA folder location> build:cuda --action_env=TF_CUDA_PATHS=<preinstalled CUDA/CUDNN folder locations divided by “,” sign> build:cuda --action_env=NCCL_INSTALL_PATH=<preinstalled NCCL library folder location>
توجه داشته باشید که
TF_CUDA_VERSION
وTF_CUDNN_VERSION
باید فقط از نسخه های اصلی و فرعی تشکیل شوند (مثلاً12.3
برای CUDA و9.1
برای CUDNN).اکنون می توانید دستور
bazel
را برای استفاده از CUDA و CUDNN نصب شده محلی اجرا کنید.برای XLA، هیچ تغییری در گزینه های فرمان لازم نیست.
برای JAX، از پرچم
--override_repository=tsl=<tsl_path>
در گزینه های فرمان Bazel استفاده کنید.برای Tensorflow، از پرچم
--override_repository=local_tsl=<tsl_path>
در گزینه های فرمان Bazel استفاده کنید.