diff --git a/.gitignore b/.gitignore index 482e776df..90a1e78d7 100644 --- a/.gitignore +++ b/.gitignore @@ -32,7 +32,8 @@ scripts/article/cuda/ scripts/article/xpu/ dependencies/ -benchmarks/gflownet/gflownet +benchmarks/recursiongfn/gflownet +benchmarks/recursiongfn/logs/ scripts/inventory.yaml output/ diff --git a/.pin/constraints-cuda-gnn.txt b/.pin/constraints-cuda-gnn.txt new file mode 100644 index 000000000..0fbb05a50 --- /dev/null +++ b/.pin/constraints-cuda-gnn.txt @@ -0,0 +1,333 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=.pin/constraints-cuda-gnn.txt .pin/tmp-constraints.txt benchmarks/geo_gnn/requirements-pre.in benchmarks/geo_gnn/requirements.in benchmarks/recursiongfn/requirements.in +# +--extra-index-url https://download.pytorch.org/whl/cu121 + +absl-py==2.1.0 + # via tensorboard +aiohappyeyeballs==2.4.0 + # via aiohttp +aiohttp==3.10.5 + # via torch-geometric +aiosignal==1.3.1 + # via aiohttp +antlr4-python3-runtime==4.9.3 + # via omegaconf +asttokens==2.4.1 + # via giving +async-timeout==4.0.3 + # via aiohttp +attrs==24.2.0 + # via aiohttp +blosc2==2.7.1 + # via tables +botorch==0.11.3 + # via -r benchmarks/recursiongfn/requirements.in +certifi==2024.7.4 + # via + # requests + # sentry-sdk +charset-normalizer==3.3.2 + # via requests +click==8.1.7 + # via wandb +codefind==0.1.6 + # via ptera +cvxopt==1.3.2 + # via -r benchmarks/recursiongfn/requirements.in +docker-pycreds==0.4.0 + # via wandb +executing==1.2.0 + # via varname +filelock==3.15.4 + # via + # torch + # triton +frozenlist==1.4.1 + # via + # aiohttp + # aiosignal +fsspec==2024.6.1 + # via + # torch + # torch-geometric +gitdb==4.0.11 + # via gitpython +gitpython==3.1.43 + # via + # -r benchmarks/recursiongfn/requirements.in + # wandb +giving==0.4.2 + # via + # ptera + # voir +gpytorch==1.12 + # via + # -r benchmarks/recursiongfn/requirements.in + # botorch +grpcio==1.65.5 + # via tensorboard +idna==3.7 + # via + # requests + # yarl +jaxtyping==0.2.33 + # via linear-operator +jinja2==3.1.4 + # via + # torch + # torch-geometric +joblib==1.4.2 + # via scikit-learn +linear-operator==0.5.2 + # via + # botorch + # gpytorch +markdown==3.7 + # via tensorboard +markdown-it-py==3.0.0 + # via rich +markupsafe==2.1.5 + # via + # jinja2 + # werkzeug +mdurl==0.1.2 + # via markdown-it-py +mpmath==1.3.0 + # via + # botorch + # gpytorch + # sympy +msgpack==1.0.8 + # via blosc2 +multidict==6.0.5 + # via + # aiohttp + # yarl +multipledispatch==1.0.0 + # via botorch +ndindex==1.8 + # via blosc2 +networkx==3.3 + # via + # -r benchmarks/recursiongfn/requirements.in + # torch +numexpr==2.10.1 + # via + # blosc2 + # tables +numpy==1.26.4 + # via + # -r benchmarks/geo_gnn/requirements.in + # blosc2 + # botorch + # numexpr + # opt-einsum + # pandas + # pyarrow + # pyro-ppl + # rdkit + # scikit-learn + # scipy + # tables + # tensorboard + # torch-geometric +nvidia-cublas-cu12==12.1.3.1 + # via + # nvidia-cudnn-cu12 + # nvidia-cusolver-cu12 + # torch +nvidia-cuda-cupti-cu12==12.1.105 + # via torch +nvidia-cuda-nvrtc-cu12==12.1.105 + # via torch +nvidia-cuda-runtime-cu12==12.1.105 + # via torch +nvidia-cudnn-cu12==9.1.0.70 + # via torch +nvidia-cufft-cu12==11.0.2.54 + # via torch +nvidia-curand-cu12==10.3.2.106 + # via torch +nvidia-cusolver-cu12==11.4.5.107 + # via torch +nvidia-cusparse-cu12==12.1.0.106 + # via + # nvidia-cusolver-cu12 + # torch +nvidia-nccl-cu12==2.20.5 + # via torch +nvidia-nvjitlink-cu12==12.6.20 + # via + # nvidia-cusolver-cu12 + # nvidia-cusparse-cu12 +nvidia-nvtx-cu12==12.1.105 + # via torch +omegaconf==2.3.0 + # via + # -r benchmarks/recursiongfn/requirements.in + # voir +opt-einsum==3.3.0 + # via pyro-ppl +ovld==0.3.8 + # via voir +packaging==24.1 + # via + # tables + # tensorboard +pandas==2.2.2 + # via + # -r benchmarks/geo_gnn/requirements.in + # -r benchmarks/recursiongfn/requirements.in +pillow==10.4.0 + # via rdkit +platformdirs==4.2.2 + # via wandb +protobuf==5.27.3 + # via + # tensorboard + # wandb +psutil==5.9.8 + # via + # torch-geometric + # voir + # wandb +ptera==1.4.1 + # via voir +py-cpuinfo==9.0.0 + # via + # blosc2 + # tables +pyarrow==17.0.0 + # via -r benchmarks/recursiongfn/requirements.in +pygments==2.18.0 + # via rich +pynvml==11.5.3 + # via voir +pyparsing==3.1.2 + # via torch-geometric +pyro-api==0.1.2 + # via pyro-ppl +pyro-ppl==1.9.1 + # via + # -r benchmarks/recursiongfn/requirements.in + # botorch +python-dateutil==2.9.0.post0 + # via pandas +pytz==2024.1 + # via pandas +pyyaml==6.0.2 + # via + # omegaconf + # wandb +rdkit==2024.3.5 + # via + # -r benchmarks/geo_gnn/requirements.in + # -r benchmarks/recursiongfn/requirements.in +reactivex==4.0.4 + # via giving +requests==2.32.3 + # via + # torch-geometric + # wandb +rich==13.7.1 + # via voir +scikit-learn==1.5.1 + # via + # gpytorch + # torch-geometric +scipy==1.14.0 + # via + # -r benchmarks/recursiongfn/requirements.in + # botorch + # gpytorch + # linear-operator + # scikit-learn + # torch-cluster + # torch-geometric + # torch-sparse +sentry-sdk==2.13.0 + # via wandb +setproctitle==1.3.3 + # via wandb +six==1.16.0 + # via + # asttokens + # docker-pycreds + # python-dateutil + # tensorboard +smmap==5.0.1 + # via gitdb +sympy==1.13.2 + # via torch +tables==3.10.1 + # via -r benchmarks/recursiongfn/requirements.in +tensorboard==2.17.1 + # via -r benchmarks/recursiongfn/requirements.in +tensorboard-data-server==0.7.2 + # via tensorboard +threadpoolctl==3.5.0 + # via scikit-learn +torch==2.4.0+cu121 + # via + # -r benchmarks/geo_gnn/requirements-pre.in + # -r benchmarks/recursiongfn/requirements.in + # botorch + # linear-operator + # pyro-ppl +torch-cluster==1.6.3 + # via + # -r benchmarks/geo_gnn/requirements.in + # -r benchmarks/recursiongfn/requirements.in +torch-geometric==2.5.3 + # via + # -r benchmarks/geo_gnn/requirements.in + # -r benchmarks/recursiongfn/requirements.in +torch-scatter==2.1.2 + # via + # -r benchmarks/geo_gnn/requirements.in + # -r benchmarks/recursiongfn/requirements.in +torch-sparse==0.6.18 + # via + # -r benchmarks/geo_gnn/requirements.in + # -r benchmarks/recursiongfn/requirements.in +tqdm==4.66.5 + # via + # pyro-ppl + # torch-geometric +triton==3.0.0 + # via torch +typeguard==2.13.3 + # via + # jaxtyping + # linear-operator +typing-extensions==4.12.2 + # via + # reactivex + # tables + # torch +tzdata==2024.1 + # via pandas +urllib3==2.2.2 + # via + # requests + # sentry-sdk +varname==0.10.0 + # via giving +voir==0.2.17 + # via + # -c .pin/../constraints/cuda.txt + # -r benchmarks/geo_gnn/requirements.in + # -r benchmarks/recursiongfn/requirements.in +wandb==0.17.7 + # via -r benchmarks/recursiongfn/requirements.in +werkzeug==3.0.3 + # via tensorboard +yarl==1.9.4 + # via aiohttp + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/.pin/constraints-cuda-torch.txt b/.pin/constraints-cuda-torch.txt index b1a364990..1ea55f49b 100644 --- a/.pin/constraints-cuda-torch.txt +++ b/.pin/constraints-cuda-torch.txt @@ -2,12 +2,9 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --output-file=.pin/constraints-cuda-torch.txt .pin/tmp-constraints.txt benchmarks/brax/requirements.in benchmarks/diffusion/requirements.in benchmarks/dinov2/requirements.in benchmarks/flops/requirements.in benchmarks/huggingface/requirements.in benchmarks/lightning/requirements.in benchmarks/llama/requirements.in benchmarks/llm/requirements.in benchmarks/super-slomo/requirements.in benchmarks/timm/requirements.in benchmarks/torchvision/requirements.in benchmarks/torchvision_ddp/requirements.in +# pip-compile --output-file=.pin/constraints-cuda-torch.txt .pin/tmp-constraints.txt benchmarks/brax/requirements.in benchmarks/diffusion/requirements.in benchmarks/dinov2/requirements.in benchmarks/flops/requirements.in benchmarks/huggingface/requirements.in benchmarks/lightning/requirements.in benchmarks/llama/requirements.in benchmarks/llm/requirements.in benchmarks/super-slomo/requirements.in benchmarks/timm/requirements.in benchmarks/torchatari/requirements.in benchmarks/torchvision/requirements.in benchmarks/torchvision_ddp/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com absl-py==2.1.0 # via @@ -19,13 +16,14 @@ absl-py==2.1.0 # mujoco-mjx # optax # orbax-checkpoint + # tensorboard accelerate==0.33.0 # via # -r benchmarks/diffusion/requirements.in # diffusers -aiohappyeyeballs==2.3.4 +aiohappyeyeballs==2.4.0 # via aiohttp -aiohttp==3.10.0 +aiohttp==3.10.5 # via # datasets # fsspec @@ -33,6 +31,8 @@ aiosignal==1.3.1 # via aiohttp antlr4-python3-runtime==4.9.3 # via omegaconf +appdirs==1.4.4 + # via cantilever argklass==1.4.4 # via # -r benchmarks/diffusion/requirements.in @@ -41,7 +41,7 @@ asttokens==2.4.1 # via giving async-timeout==4.0.3 # via aiohttp -attrs==23.2.0 +attrs==24.2.0 # via aiohttp blinker==1.8.2 # via flask @@ -49,6 +49,8 @@ blobfile==2.1.1 # via torchtune brax==0.10.5 # via -r benchmarks/brax/requirements.in +cantilever==0.1.0 + # via -r benchmarks/torchatari/requirements.in certifi==2024.7.4 # via requests charset-normalizer==3.3.2 @@ -60,26 +62,33 @@ click==8.1.7 cloudpickle==3.0.0 # via # gym + # gymnasium # submitit codefind==0.1.6 # via ptera contextlib2==21.6.0 # via ml-collections -datasets==2.20.0 +datasets==2.21.0 # via # -r benchmarks/diffusion/requirements.in # -r benchmarks/llama/requirements.in # torchtune -diffusers[torch]==0.29.2 +diffusers[torch]==0.30.0 # via -r benchmarks/diffusion/requirements.in dill==0.3.8 # via # datasets # multiprocess dm-env==1.6 - # via brax + # via + # brax + # envpool dm-tree==0.1.8 # via dm-env +docstring-parser==0.16 + # via tyro +envpool==0.8.4 + # via -r benchmarks/torchatari/requirements.in etils[epath,epy]==1.7.0 # via # brax @@ -91,6 +100,8 @@ executing==1.2.0 # via varname fairscale==0.4.13 # via -r benchmarks/llama/requirements.in +farama-notifications==0.0.4 + # via gymnasium filelock==3.15.4 # via # blobfile @@ -114,7 +125,7 @@ frozenlist==1.4.1 # via # aiohttp # aiosignal -fsspec[http]==2024.5.0 +fsspec[http]==2024.6.1 # via # datasets # etils @@ -130,15 +141,22 @@ giving==0.4.2 # voir glfw==2.7.0 # via mujoco -grpcio==1.65.2 - # via brax -gym==0.26.2 - # via brax +grpcio==1.65.5 + # via + # brax + # tensorboard +gym==0.23.1 + # via + # -r benchmarks/torchatari/requirements.in + # brax + # envpool gym-notices==0.0.8 # via gym +gymnasium==0.29.1 + # via envpool hjson==3.1.0 # via argklass -huggingface-hub==0.24.5 +huggingface-hub==0.24.6 # via # -r benchmarks/timm/requirements.in # accelerate @@ -147,15 +165,18 @@ huggingface-hub==0.24.5 # tokenizers # torchtune # transformers +humanize==4.10.0 + # via orbax-checkpoint idna==3.7 # via # requests # yarl -importlib-metadata==8.2.0 +importlib-metadata==8.4.0 # via diffusers -importlib-resources==6.4.0 +importlib-resources==6.4.3 # via # argklass + # cantilever # etils # torchcompat iopath==0.1.10 @@ -164,7 +185,7 @@ iopath==0.1.10 # fvcore itsdangerous==2.2.0 # via flask -jax[cuda12]==0.4.31 +jax==0.4.31 # via # -r benchmarks/brax/requirements.in # brax @@ -174,10 +195,6 @@ jax[cuda12]==0.4.31 # mujoco-mjx # optax # orbax-checkpoint -jax-cuda12-pjrt==0.4.31 - # via jax-cuda12-plugin -jax-cuda12-plugin[with-cuda]==0.4.31 - # via jax jaxlib==0.4.31 # via # brax @@ -194,7 +211,7 @@ jinja2==3.1.4 # brax # flask # torch -lightning==2.3.3 +lightning==2.4.0 # via -r benchmarks/lightning/requirements.in lightning-utilities==0.11.6 # via @@ -203,6 +220,8 @@ lightning-utilities==0.11.6 # torchmetrics lxml==4.9.4 # via blobfile +markdown==3.7 + # via tensorboard markdown-it-py==3.0.0 # via rich markupsafe==2.1.5 @@ -224,11 +243,11 @@ msgpack==1.0.8 # via # flax # orbax-checkpoint -mujoco==3.2.0 +mujoco==3.2.2 # via # brax # mujoco-mjx -mujoco-mjx==3.2.0 +mujoco-mjx==3.2.2 # via brax multidict==6.0.5 # via @@ -243,20 +262,22 @@ networkx==3.3 numpy==1.26.4 # via # -r benchmarks/super-slomo/requirements.in + # -r benchmarks/torchatari/requirements.in # accelerate # brax # chex # datasets # diffusers # dm-env + # envpool # fairscale # flax # fvcore # gym + # gymnasium # jax # jaxlib # jaxopt - # lightning # ml-dtypes # mujoco # opencv-python @@ -265,8 +286,8 @@ numpy==1.26.4 # orbax-checkpoint # pandas # pyarrow - # pytorch-lightning # scipy + # tensorboard # tensorboardx # tensorstore # torchmetrics @@ -277,48 +298,31 @@ numpy==1.26.4 # xformers nvidia-cublas-cu12==12.1.3.1 # via - # jax-cuda12-plugin # nvidia-cudnn-cu12 # nvidia-cusolver-cu12 # torch nvidia-cuda-cupti-cu12==12.1.105 - # via - # jax-cuda12-plugin - # torch -nvidia-cuda-nvcc-cu12==12.6.20 - # via jax-cuda12-plugin + # via torch nvidia-cuda-nvrtc-cu12==12.1.105 # via torch nvidia-cuda-runtime-cu12==12.1.105 - # via - # jax-cuda12-plugin - # torch + # via torch nvidia-cudnn-cu12==9.1.0.70 - # via - # jax-cuda12-plugin - # torch + # via torch nvidia-cufft-cu12==11.0.2.54 - # via - # jax-cuda12-plugin - # torch + # via torch nvidia-curand-cu12==10.3.2.106 # via torch nvidia-cusolver-cu12==11.4.5.107 - # via - # jax-cuda12-plugin - # torch + # via torch nvidia-cusparse-cu12==12.1.0.106 # via - # jax-cuda12-plugin # nvidia-cusolver-cu12 # torch nvidia-nccl-cu12==2.20.5 - # via - # jax-cuda12-plugin - # torch + # via torch nvidia-nvjitlink-cu12==12.6.20 # via - # jax-cuda12-plugin # nvidia-cusolver-cu12 # nvidia-cusparse-cu12 nvidia-nvtx-cu12==12.1.105 @@ -336,20 +340,24 @@ optax==0.2.3 # via # brax # flax -orbax-checkpoint==0.5.23 +optree==0.12.1 + # via envpool +orbax-checkpoint==0.6.0 # via # brax # flax -ovld==0.3.6 +ovld==0.3.8 # via voir packaging==24.1 # via # accelerate # datasets + # envpool # huggingface-hub # lightning # lightning-utilities # pytorch-lightning + # tensorboard # tensorboardx # torchmetrics # transformers @@ -367,6 +375,7 @@ portalocker==2.10.1 protobuf==5.27.3 # via # orbax-checkpoint + # tensorboard # tensorboardx psutil==5.9.8 # via @@ -376,8 +385,6 @@ ptera==1.4.1 # via voir pyarrow==17.0.0 # via datasets -pyarrow-hotfix==0.6 - # via datasets pycryptodomex==3.20.0 # via blobfile pygments==2.18.0 @@ -390,11 +397,11 @@ python-dateutil==2.9.0.post0 # via pandas pytinyrenderer==0.0.14 # via brax -pytorch-lightning==2.3.3 +pytorch-lightning==2.4.0 # via lightning pytz==2024.1 # via pandas -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -r benchmarks/llm/requirements.in # -r benchmarks/timm/requirements.in @@ -427,8 +434,9 @@ requests==2.32.3 rich==13.7.1 # via # flax + # tyro # voir -safetensors==0.4.3 +safetensors==0.4.4 # via # -r benchmarks/timm/requirements.in # accelerate @@ -447,21 +455,28 @@ sentencepiece==0.2.0 # via # -r benchmarks/llama/requirements.in # torchtune +shtab==1.7.1 + # via tyro six==1.16.0 # via # asttokens # fire # ml-collections # python-dateutil + # tensorboard submitit==1.5.1 # via -r benchmarks/dinov2/requirements.in -sympy==1.13.1 +sympy==1.13.2 # via torch tabulate==0.9.0 # via fvcore +tensorboard==2.17.1 + # via -r benchmarks/torchatari/requirements.in +tensorboard-data-server==0.7.2 + # via tensorboard tensorboardx==2.6.2.2 # via brax -tensorstore==0.1.63 +tensorstore==0.1.64 # via # flax # orbax-checkpoint @@ -486,6 +501,7 @@ torch==2.4.0+cu121 # -r benchmarks/llm/requirements.in # -r benchmarks/super-slomo/requirements.in # -r benchmarks/timm/requirements.in + # -r benchmarks/torchatari/requirements.in # -r benchmarks/torchvision/requirements.in # -r benchmarks/torchvision_ddp/requirements.in # accelerate @@ -503,9 +519,10 @@ torchcompat==1.1.4 # -c .pin/../constraints/cuda.txt # -r benchmarks/flops/requirements.in # -r benchmarks/lightning/requirements.in + # -r benchmarks/torchatari/requirements.in # -r benchmarks/torchvision/requirements.in # -r benchmarks/torchvision_ddp/requirements.in -torchmetrics==1.4.0.post0 +torchmetrics==1.4.1 # via # -r benchmarks/dinov2/requirements.in # lightning @@ -522,7 +539,7 @@ torchvision==0.19.0+cu121 # -r benchmarks/timm/requirements.in # -r benchmarks/torchvision/requirements.in # -r benchmarks/torchvision_ddp/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -r benchmarks/diffusion/requirements.in # -r benchmarks/flops/requirements.in @@ -537,32 +554,40 @@ tqdm==4.66.4 # pytorch-lightning # torchtune # transformers -transformers==4.43.3 +transformers==4.44.1 # via # -r benchmarks/diffusion/requirements.in # -r benchmarks/huggingface/requirements.in # -r benchmarks/llama/requirements.in -trimesh==4.4.3 +trimesh==4.4.7 # via # brax # mujoco-mjx triton==3.0.0 # via torch +types-protobuf==5.27.0.20240626 + # via envpool typing-extensions==4.12.2 # via # brax # chex + # envpool # etils # flax + # gymnasium # huggingface-hub # iopath # lightning # lightning-utilities + # optree # orbax-checkpoint # pytorch-lightning # reactivex # submitit # torch + # tyro +tyro==0.8.8 + # via -r benchmarks/torchatari/requirements.in tzdata==2024.1 # via pandas urllib3==2.2.2 @@ -584,19 +609,22 @@ voir==0.2.17 # -r benchmarks/llm/requirements.in # -r benchmarks/super-slomo/requirements.in # -r benchmarks/timm/requirements.in + # -r benchmarks/torchatari/requirements.in # -r benchmarks/torchvision/requirements.in # -r benchmarks/torchvision_ddp/requirements.in werkzeug==3.0.3 - # via flask + # via + # flask + # tensorboard xformers==0.0.27.post2 # via -r benchmarks/dinov2/requirements.in -xxhash==3.4.1 +xxhash==3.5.0 # via datasets yacs==0.1.8 # via fvcore yarl==1.9.4 # via aiohttp -zipp==3.19.2 +zipp==3.20.0 # via # etils # importlib-metadata diff --git a/.pin/constraints-rocm-gnn.txt b/.pin/constraints-rocm-gnn.txt new file mode 100644 index 000000000..dd945fc95 --- /dev/null +++ b/.pin/constraints-rocm-gnn.txt @@ -0,0 +1,305 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=.pin/constraints-rocm-gnn.txt .pin/tmp-constraints.txt benchmarks/geo_gnn/requirements-pre.in benchmarks/geo_gnn/requirements.in benchmarks/recursiongfn/requirements.in +# +--extra-index-url https://download.pytorch.org/whl/rocm6.0 + +absl-py==2.1.0 + # via tensorboard +aiohappyeyeballs==2.4.0 + # via aiohttp +aiohttp==3.10.5 + # via torch-geometric +aiosignal==1.3.1 + # via aiohttp +antlr4-python3-runtime==4.9.3 + # via omegaconf +asttokens==2.4.1 + # via giving +async-timeout==4.0.3 + # via aiohttp +attrs==24.2.0 + # via aiohttp +blosc2==2.7.1 + # via tables +botorch==0.11.3 + # via gflownet +certifi==2024.7.4 + # via + # requests + # sentry-sdk +charset-normalizer==3.3.2 + # via requests +click==8.1.7 + # via wandb +codefind==0.1.6 + # via ptera +cvxopt==1.3.2 + # via gflownet +docker-pycreds==0.4.0 + # via wandb +executing==1.2.0 + # via varname +filelock==3.15.4 + # via + # pytorch-triton-rocm + # torch +frozenlist==1.4.1 + # via + # aiohttp + # aiosignal +fsspec==2024.6.1 + # via + # torch + # torch-geometric +gflownet @ git+https://github.com/Delaunay/gflownet@milabench + # via -r benchmarks/recursiongfn/requirements.in +gitdb==4.0.11 + # via gitpython +gitpython==3.1.43 + # via + # gflownet + # wandb +giving==0.4.2 + # via + # ptera + # voir +gpytorch==1.12 + # via + # botorch + # gflownet +grpcio==1.65.5 + # via tensorboard +idna==3.7 + # via + # requests + # yarl +jaxtyping==0.2.33 + # via linear-operator +jinja2==3.1.4 + # via + # torch + # torch-geometric +joblib==1.4.2 + # via scikit-learn +linear-operator==0.5.2 + # via + # botorch + # gpytorch +markdown==3.7 + # via tensorboard +markdown-it-py==3.0.0 + # via rich +markupsafe==2.1.5 + # via + # jinja2 + # werkzeug +mdurl==0.1.2 + # via markdown-it-py +mpmath==1.3.0 + # via + # botorch + # gpytorch + # sympy +msgpack==1.0.8 + # via blosc2 +multidict==6.0.5 + # via + # aiohttp + # yarl +multipledispatch==1.0.0 + # via botorch +ndindex==1.8 + # via blosc2 +networkx==3.3 + # via + # gflownet + # torch +numexpr==2.10.1 + # via + # blosc2 + # tables +numpy==1.26.4 + # via + # -r benchmarks/geo_gnn/requirements.in + # blosc2 + # botorch + # numexpr + # opt-einsum + # pandas + # pyarrow + # pyro-ppl + # rdkit + # scikit-learn + # scipy + # tables + # tensorboard + # torch-geometric +omegaconf==2.3.0 + # via + # gflownet + # voir +opt-einsum==3.3.0 + # via pyro-ppl +ovld==0.3.8 + # via voir +packaging==24.1 + # via + # tables + # tensorboard +pandas==2.2.2 + # via + # -r benchmarks/geo_gnn/requirements.in + # gflownet +pillow==10.4.0 + # via rdkit +platformdirs==4.2.2 + # via wandb +protobuf==5.27.3 + # via + # tensorboard + # wandb +psutil==5.9.8 + # via + # torch-geometric + # voir + # wandb +ptera==1.4.1 + # via voir +py-cpuinfo==9.0.0 + # via + # blosc2 + # tables +pyarrow==17.0.0 + # via gflownet +pygments==2.18.0 + # via rich +pynvml==11.5.3 + # via voir +pyparsing==3.1.2 + # via torch-geometric +pyro-api==0.1.2 + # via pyro-ppl +pyro-ppl==1.9.1 + # via + # botorch + # gflownet +python-dateutil==2.9.0.post0 + # via pandas +pytorch-triton-rocm==3.0.0 + # via torch +pytz==2024.1 + # via pandas +pyyaml==6.0.2 + # via + # omegaconf + # wandb +rdkit==2024.3.5 + # via + # -r benchmarks/geo_gnn/requirements.in + # gflownet +reactivex==4.0.4 + # via giving +requests==2.32.3 + # via + # torch-geometric + # wandb +rich==13.7.1 + # via voir +scikit-learn==1.5.1 + # via + # gpytorch + # torch-geometric +scipy==1.14.0 + # via + # botorch + # gflownet + # gpytorch + # linear-operator + # scikit-learn + # torch-cluster + # torch-geometric + # torch-sparse +sentry-sdk==2.13.0 + # via wandb +setproctitle==1.3.3 + # via wandb +six==1.16.0 + # via + # asttokens + # docker-pycreds + # python-dateutil + # tensorboard +smmap==5.0.1 + # via gitdb +sympy==1.13.2 + # via torch +tables==3.10.1 + # via gflownet +tensorboard==2.17.1 + # via gflownet +tensorboard-data-server==0.7.2 + # via tensorboard +threadpoolctl==3.5.0 + # via scikit-learn +torch==2.4.0+rocm6.0 + # via + # -r benchmarks/geo_gnn/requirements-pre.in + # -r benchmarks/recursiongfn/requirements.in + # botorch + # gflownet + # linear-operator + # pyro-ppl +torch-cluster==1.6.3 + # via + # -r benchmarks/geo_gnn/requirements.in + # gflownet +torch-geometric==2.5.3 + # via + # -r benchmarks/geo_gnn/requirements.in + # gflownet +torch-scatter==2.1.2 + # via + # -r benchmarks/geo_gnn/requirements.in + # gflownet +torch-sparse==0.6.18 + # via + # -r benchmarks/geo_gnn/requirements.in + # gflownet +tqdm==4.66.5 + # via + # pyro-ppl + # torch-geometric +typeguard==2.13.3 + # via + # jaxtyping + # linear-operator +typing-extensions==4.12.2 + # via + # reactivex + # tables + # torch +tzdata==2024.1 + # via pandas +urllib3==2.2.2 + # via + # requests + # sentry-sdk +varname==0.10.0 + # via giving +voir==0.2.17 + # via + # -c .pin/../constraints/rocm.txt + # -r benchmarks/geo_gnn/requirements.in + # -r benchmarks/recursiongfn/requirements.in +wandb==0.17.7 + # via gflownet +werkzeug==3.0.3 + # via tensorboard +yarl==1.9.4 + # via aiohttp + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/.pin/constraints-rocm-torch.txt b/.pin/constraints-rocm-torch.txt index 53ae14621..e2bd2b07c 100644 --- a/.pin/constraints-rocm-torch.txt +++ b/.pin/constraints-rocm-torch.txt @@ -2,10 +2,9 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --output-file=.pin/constraints-rocm-torch.txt .pin/tmp-constraints.txt benchmarks/brax/requirements.in benchmarks/diffusion/requirements.in benchmarks/dinov2/requirements.in benchmarks/flops/requirements.in benchmarks/huggingface/requirements.in benchmarks/lightning/requirements.in benchmarks/llama/requirements.in benchmarks/llm/requirements.in benchmarks/super-slomo/requirements.in benchmarks/timm/requirements.in benchmarks/torchvision/requirements.in benchmarks/torchvision_ddp/requirements.in +# pip-compile --output-file=.pin/constraints-rocm-torch.txt .pin/tmp-constraints.txt benchmarks/brax/requirements.in benchmarks/diffusion/requirements.in benchmarks/dinov2/requirements.in benchmarks/flops/requirements.in benchmarks/huggingface/requirements.in benchmarks/lightning/requirements.in benchmarks/llama/requirements.in benchmarks/llm/requirements.in benchmarks/super-slomo/requirements.in benchmarks/timm/requirements.in benchmarks/torchatari/requirements.in benchmarks/torchvision/requirements.in benchmarks/torchvision_ddp/requirements.in # --extra-index-url https://download.pytorch.org/whl/rocm6.0 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html absl-py==2.1.0 # via @@ -17,13 +16,14 @@ absl-py==2.1.0 # mujoco-mjx # optax # orbax-checkpoint + # tensorboard accelerate==0.33.0 # via # -r benchmarks/diffusion/requirements.in # diffusers -aiohappyeyeballs==2.3.5 +aiohappyeyeballs==2.4.0 # via aiohttp -aiohttp==3.10.2 +aiohttp==3.10.5 # via # datasets # fsspec @@ -31,6 +31,8 @@ aiosignal==1.3.1 # via aiohttp antlr4-python3-runtime==4.9.3 # via omegaconf +appdirs==1.4.4 + # via cantilever argklass==1.4.4 # via # -r benchmarks/diffusion/requirements.in @@ -47,6 +49,8 @@ blobfile==2.1.1 # via torchtune brax==0.10.5 # via -r benchmarks/brax/requirements.in +cantilever==0.1.0 + # via -r benchmarks/torchatari/requirements.in certifi==2024.7.4 # via requests charset-normalizer==3.3.2 @@ -58,12 +62,13 @@ click==8.1.7 cloudpickle==3.0.0 # via # gym + # gymnasium # submitit codefind==0.1.6 # via ptera contextlib2==21.6.0 # via ml-collections -datasets==2.20.0 +datasets==2.21.0 # via # -r benchmarks/diffusion/requirements.in # -r benchmarks/llama/requirements.in @@ -75,9 +80,15 @@ dill==0.3.8 # datasets # multiprocess dm-env==1.6 - # via brax + # via + # brax + # envpool dm-tree==0.1.8 # via dm-env +docstring-parser==0.16 + # via tyro +envpool==0.8.4 + # via -r benchmarks/torchatari/requirements.in etils[epath,epy]==1.7.0 # via # brax @@ -89,6 +100,8 @@ executing==1.2.0 # via varname fairscale==0.4.13 # via -r benchmarks/llama/requirements.in +farama-notifications==0.0.4 + # via gymnasium filelock==3.15.4 # via # blobfile @@ -112,7 +125,7 @@ frozenlist==1.4.1 # via # aiohttp # aiosignal -fsspec[http]==2024.5.0 +fsspec[http]==2024.6.1 # via # datasets # etils @@ -128,15 +141,22 @@ giving==0.4.2 # voir glfw==2.7.0 # via mujoco -grpcio==1.65.4 - # via brax -gym==0.26.2 - # via brax +grpcio==1.65.5 + # via + # brax + # tensorboard +gym==0.23.1 + # via + # -r benchmarks/torchatari/requirements.in + # brax + # envpool gym-notices==0.0.8 # via gym +gymnasium==0.29.1 + # via envpool hjson==3.1.0 # via argklass -huggingface-hub==0.24.5 +huggingface-hub==0.24.6 # via # -r benchmarks/timm/requirements.in # accelerate @@ -145,15 +165,18 @@ huggingface-hub==0.24.5 # tokenizers # torchtune # transformers +humanize==4.10.0 + # via orbax-checkpoint idna==3.7 # via # requests # yarl -importlib-metadata==8.2.0 +importlib-metadata==8.4.0 # via diffusers -importlib-resources==6.4.0 +importlib-resources==6.4.3 # via # argklass + # cantilever # etils # torchcompat iopath==0.1.10 @@ -162,7 +185,7 @@ iopath==0.1.10 # fvcore itsdangerous==2.2.0 # via flask -jax[cuda12]==0.4.31 +jax==0.4.31 # via # -r benchmarks/brax/requirements.in # brax @@ -172,10 +195,6 @@ jax[cuda12]==0.4.31 # mujoco-mjx # optax # orbax-checkpoint -jax-cuda12-pjrt==0.4.31 - # via jax-cuda12-plugin -jax-cuda12-plugin[with-cuda]==0.4.31 - # via jax jaxlib==0.4.31 # via # brax @@ -201,6 +220,8 @@ lightning-utilities==0.11.6 # torchmetrics lxml==4.9.4 # via blobfile +markdown==3.7 + # via tensorboard markdown-it-py==3.0.0 # via rich markupsafe==2.1.5 @@ -241,16 +262,19 @@ networkx==3.3 numpy==1.26.4 # via # -r benchmarks/super-slomo/requirements.in + # -r benchmarks/torchatari/requirements.in # accelerate # brax # chex # datasets # diffusers # dm-env + # envpool # fairscale # flax # fvcore # gym + # gymnasium # jax # jaxlib # jaxopt @@ -263,6 +287,7 @@ numpy==1.26.4 # pandas # pyarrow # scipy + # tensorboard # tensorboardx # tensorstore # torchmetrics @@ -271,35 +296,6 @@ numpy==1.26.4 # transformers # trimesh # xformers -nvidia-cublas-cu12==12.6.0.22 - # via - # jax-cuda12-plugin - # nvidia-cudnn-cu12 - # nvidia-cusolver-cu12 -nvidia-cuda-cupti-cu12==12.6.37 - # via jax-cuda12-plugin -nvidia-cuda-nvcc-cu12==12.6.20 - # via jax-cuda12-plugin -nvidia-cuda-runtime-cu12==12.6.37 - # via jax-cuda12-plugin -nvidia-cudnn-cu12==9.3.0.75 - # via jax-cuda12-plugin -nvidia-cufft-cu12==11.2.6.28 - # via jax-cuda12-plugin -nvidia-cusolver-cu12==11.6.4.38 - # via jax-cuda12-plugin -nvidia-cusparse-cu12==12.5.2.23 - # via - # jax-cuda12-plugin - # nvidia-cusolver-cu12 -nvidia-nccl-cu12==2.22.3 - # via jax-cuda12-plugin -nvidia-nvjitlink-cu12==12.6.20 - # via - # jax-cuda12-plugin - # nvidia-cufft-cu12 - # nvidia-cusolver-cu12 - # nvidia-cusparse-cu12 omegaconf==2.3.0 # via # -r benchmarks/dinov2/requirements.in @@ -313,7 +309,9 @@ optax==0.2.3 # via # brax # flax -orbax-checkpoint==0.5.23 +optree==0.12.1 + # via envpool +orbax-checkpoint==0.6.0 # via # brax # flax @@ -323,10 +321,12 @@ packaging==24.1 # via # accelerate # datasets + # envpool # huggingface-hub # lightning # lightning-utilities # pytorch-lightning + # tensorboard # tensorboardx # torchmetrics # transformers @@ -344,6 +344,7 @@ portalocker==2.10.1 protobuf==5.27.3 # via # orbax-checkpoint + # tensorboard # tensorboardx psutil==5.9.8 # via @@ -353,8 +354,6 @@ ptera==1.4.1 # via voir pyarrow==17.0.0 # via datasets -pyarrow-hotfix==0.6 - # via datasets pycryptodomex==3.20.0 # via blobfile pygments==2.18.0 @@ -406,6 +405,7 @@ requests==2.32.3 rich==13.7.1 # via # flax + # tyro # voir safetensors==0.4.4 # via @@ -426,18 +426,25 @@ sentencepiece==0.2.0 # via # -r benchmarks/llama/requirements.in # torchtune +shtab==1.7.1 + # via tyro six==1.16.0 # via # asttokens # fire # ml-collections # python-dateutil + # tensorboard submitit==1.5.1 # via -r benchmarks/dinov2/requirements.in -sympy==1.13.1 +sympy==1.13.2 # via torch tabulate==0.9.0 # via fvcore +tensorboard==2.17.1 + # via -r benchmarks/torchatari/requirements.in +tensorboard-data-server==0.7.2 + # via tensorboard tensorboardx==2.6.2.2 # via brax tensorstore==0.1.64 @@ -465,6 +472,7 @@ torch==2.4.0+rocm6.0 # -r benchmarks/llm/requirements.in # -r benchmarks/super-slomo/requirements.in # -r benchmarks/timm/requirements.in + # -r benchmarks/torchatari/requirements.in # -r benchmarks/torchvision/requirements.in # -r benchmarks/torchvision_ddp/requirements.in # accelerate @@ -482,6 +490,7 @@ torchcompat==1.1.4 # -c .pin/../constraints/rocm.txt # -r benchmarks/flops/requirements.in # -r benchmarks/lightning/requirements.in + # -r benchmarks/torchatari/requirements.in # -r benchmarks/torchvision/requirements.in # -r benchmarks/torchvision_ddp/requirements.in torchmetrics==1.4.1 @@ -516,30 +525,38 @@ tqdm==4.66.5 # pytorch-lightning # torchtune # transformers -transformers==4.44.0 +transformers==4.44.1 # via # -r benchmarks/diffusion/requirements.in # -r benchmarks/huggingface/requirements.in # -r benchmarks/llama/requirements.in -trimesh==4.4.4 +trimesh==4.4.7 # via # brax # mujoco-mjx +types-protobuf==5.27.0.20240626 + # via envpool typing-extensions==4.12.2 # via # brax # chex + # envpool # etils # flax + # gymnasium # huggingface-hub # iopath # lightning # lightning-utilities + # optree # orbax-checkpoint # pytorch-lightning # reactivex # submitit # torch + # tyro +tyro==0.8.8 + # via -r benchmarks/torchatari/requirements.in tzdata==2024.1 # via pandas urllib3==2.2.2 @@ -561,19 +578,22 @@ voir==0.2.17 # -r benchmarks/llm/requirements.in # -r benchmarks/super-slomo/requirements.in # -r benchmarks/timm/requirements.in + # -r benchmarks/torchatari/requirements.in # -r benchmarks/torchvision/requirements.in # -r benchmarks/torchvision_ddp/requirements.in werkzeug==3.0.3 - # via flask + # via + # flask + # tensorboard xformers==0.0.27.post2 # via -r benchmarks/dinov2/requirements.in -xxhash==3.4.1 +xxhash==3.5.0 # via datasets yacs==0.1.8 # via fvcore yarl==1.9.4 # via aiohttp -zipp==3.19.2 +zipp==3.20.0 # via # etils # importlib-metadata diff --git a/README.md b/README.md index 5531a1253..526398938 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ It will include all of the necessary data docker run -it --rm --ipc=host --gpus=all \ -v $(pwd)/results:/milabench/envs/runs \ $MILABENCH_IMAGE \ - milabench run + bash -c "milabench prepare && milabench run" ================= Benchmark results diff --git a/benchmarks/brax/requirements.cuda.txt b/benchmarks/brax/requirements.cuda.txt index 3f05a45ee..ec3625673 100644 --- a/benchmarks/brax/requirements.cuda.txt +++ b/benchmarks/brax/requirements.cuda.txt @@ -4,10 +4,7 @@ # # pip-compile --output-file=benchmarks/brax/requirements.cuda.txt .pin/tmp-constraints-cuda-brax.txt benchmarks/brax/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com absl-py==2.1.0 # via @@ -94,7 +91,7 @@ flax==0.8.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # brax -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # etils @@ -108,11 +105,11 @@ glfw==2.7.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # mujoco -grpcio==1.65.2 +grpcio==1.65.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # brax -gym==0.26.2 +gym==0.23.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # brax @@ -120,7 +117,11 @@ gym-notices==0.0.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # gym -importlib-resources==6.4.0 +humanize==4.10.0 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # orbax-checkpoint +importlib-resources==6.4.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # etils @@ -128,7 +129,7 @@ itsdangerous==2.2.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # flask -jax[cuda12]==0.4.31 +jax==0.4.31 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/brax/requirements.in @@ -139,14 +140,6 @@ jax[cuda12]==0.4.31 # mujoco-mjx # optax # orbax-checkpoint -jax-cuda12-pjrt==0.4.31 - # via - # -c .pin/../.pin/constraints-cuda-torch.txt - # jax-cuda12-plugin -jax-cuda12-plugin[with-cuda]==0.4.31 - # via - # -c .pin/../.pin/constraints-cuda-torch.txt - # jax jaxlib==0.4.31 # via # -c .pin/../.pin/constraints-cuda-torch.txt @@ -199,12 +192,12 @@ msgpack==1.0.8 # -c .pin/../.pin/constraints-cuda-torch.txt # flax # orbax-checkpoint -mujoco==3.2.0 +mujoco==3.2.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # brax # mujoco-mjx -mujoco-mjx==3.2.0 +mujoco-mjx==3.2.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # brax @@ -239,19 +232,13 @@ numpy==1.26.4 nvidia-cublas-cu12==12.1.3.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt - # jax-cuda12-plugin # nvidia-cudnn-cu12 # nvidia-cusolver-cu12 # torch nvidia-cuda-cupti-cu12==12.1.105 # via # -c .pin/../.pin/constraints-cuda-torch.txt - # jax-cuda12-plugin # torch -nvidia-cuda-nvcc-cu12==12.6.20 - # via - # -c .pin/../.pin/constraints-cuda-torch.txt - # jax-cuda12-plugin nvidia-cuda-nvrtc-cu12==12.1.105 # via # -c .pin/../.pin/constraints-cuda-torch.txt @@ -259,17 +246,14 @@ nvidia-cuda-nvrtc-cu12==12.1.105 nvidia-cuda-runtime-cu12==12.1.105 # via # -c .pin/../.pin/constraints-cuda-torch.txt - # jax-cuda12-plugin # torch nvidia-cudnn-cu12==9.1.0.70 # via # -c .pin/../.pin/constraints-cuda-torch.txt - # jax-cuda12-plugin # torch nvidia-cufft-cu12==11.0.2.54 # via # -c .pin/../.pin/constraints-cuda-torch.txt - # jax-cuda12-plugin # torch nvidia-curand-cu12==10.3.2.106 # via @@ -278,23 +262,19 @@ nvidia-curand-cu12==10.3.2.106 nvidia-cusolver-cu12==11.4.5.107 # via # -c .pin/../.pin/constraints-cuda-torch.txt - # jax-cuda12-plugin # torch nvidia-cusparse-cu12==12.1.0.106 # via # -c .pin/../.pin/constraints-cuda-torch.txt - # jax-cuda12-plugin # nvidia-cusolver-cu12 # torch nvidia-nccl-cu12==2.20.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt - # jax-cuda12-plugin # torch nvidia-nvjitlink-cu12==12.6.20 # via # -c .pin/../.pin/constraints-cuda-torch.txt - # jax-cuda12-plugin # nvidia-cusolver-cu12 # nvidia-cusparse-cu12 nvidia-nvtx-cu12==12.1.105 @@ -314,12 +294,12 @@ optax==0.2.3 # -c .pin/../.pin/constraints-cuda-torch.txt # brax # flax -orbax-checkpoint==0.5.23 +orbax-checkpoint==0.6.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # brax # flax -ovld==0.3.6 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir @@ -360,7 +340,7 @@ pytinyrenderer==0.0.14 # via # -c .pin/../.pin/constraints-cuda-torch.txt # brax -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # flax @@ -389,7 +369,7 @@ six==1.16.0 # -c .pin/../.pin/constraints-cuda-torch.txt # asttokens # ml-collections -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -397,7 +377,7 @@ tensorboardx==2.6.2.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # brax -tensorstore==0.1.63 +tensorstore==0.1.64 # via # -c .pin/../.pin/constraints-cuda-torch.txt # flax @@ -410,7 +390,7 @@ torch==2.4.0+cu121 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/brax/requirements.in -trimesh==4.4.3 +trimesh==4.4.7 # via # -c .pin/../.pin/constraints-cuda-torch.txt # brax @@ -442,7 +422,7 @@ werkzeug==3.0.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # flask -zipp==3.19.2 +zipp==3.20.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # etils diff --git a/benchmarks/brax/requirements.rocm.txt b/benchmarks/brax/requirements.rocm.txt new file mode 100644 index 000000000..415732af2 --- /dev/null +++ b/benchmarks/brax/requirements.rocm.txt @@ -0,0 +1,376 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=benchmarks/brax/requirements.rocm.txt .pin/tmp-constraints-rocm-brax.txt benchmarks/brax/requirements.in +# +--extra-index-url https://download.pytorch.org/whl/rocm6.0 + +absl-py==2.1.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax + # chex + # dm-env + # ml-collections + # mujoco + # mujoco-mjx + # optax + # orbax-checkpoint +antlr4-python3-runtime==4.9.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # omegaconf +asttokens==2.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +blinker==1.8.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # flask +brax==0.10.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/brax/requirements.in +chex==0.1.86 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # optax +click==8.1.7 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # flask +cloudpickle==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # gym +codefind==0.1.6 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ptera +contextlib2==21.6.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ml-collections +dm-env==1.6 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax +dm-tree==0.1.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # dm-env +etils[epath,epy]==1.7.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax + # mujoco + # mujoco-mjx + # optax + # orbax-checkpoint +executing==1.2.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # varname +filelock==3.15.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # pytorch-triton-rocm + # torch +flask==3.0.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax + # flask-cors +flask-cors==4.0.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax +flax==0.8.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax +fsspec==2024.6.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # etils + # torch +giving==0.4.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ptera + # voir +glfw==2.7.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # mujoco +grpcio==1.65.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax +gym==0.23.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax +gym-notices==0.0.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # gym +humanize==4.10.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # orbax-checkpoint +importlib-resources==6.4.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # etils +itsdangerous==2.2.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # flask +jax==0.4.31 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/brax/requirements.in + # brax + # chex + # flax + # jaxopt + # mujoco-mjx + # optax + # orbax-checkpoint +jaxlib==0.4.31 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax + # chex + # jax + # jaxopt + # mujoco-mjx + # optax + # orbax-checkpoint +jaxopt==0.8.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax +jinja2==3.1.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax + # flask + # torch +markdown-it-py==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # rich +markupsafe==2.1.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # jinja2 + # werkzeug +mdurl==0.1.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # markdown-it-py +ml-collections==0.1.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax +ml-dtypes==0.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # jax + # jaxlib + # tensorstore +mpmath==1.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # sympy +msgpack==1.0.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # flax + # orbax-checkpoint +mujoco==3.2.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax + # mujoco-mjx +mujoco-mjx==3.2.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax +nest-asyncio==1.6.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # orbax-checkpoint +networkx==3.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +numpy==1.26.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax + # chex + # dm-env + # flax + # gym + # jax + # jaxlib + # jaxopt + # ml-dtypes + # mujoco + # opt-einsum + # optax + # orbax-checkpoint + # scipy + # tensorboardx + # tensorstore + # trimesh +omegaconf==2.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +opt-einsum==3.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # jax +optax==0.2.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax + # flax +orbax-checkpoint==0.6.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax + # flax +ovld==0.3.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +packaging==24.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # tensorboardx +pillow==10.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax +protobuf==5.27.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # orbax-checkpoint + # tensorboardx +psutil==5.9.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +ptera==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +pygments==2.18.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # rich +pynvml==11.5.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +pyopengl==3.1.7 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # mujoco +pytinyrenderer==0.0.14 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax +pytorch-triton-rocm==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +pyyaml==6.0.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # flax + # ml-collections + # omegaconf + # orbax-checkpoint +reactivex==4.0.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +rich==13.7.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # flax + # voir +scipy==1.14.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax + # jax + # jaxlib + # jaxopt + # mujoco-mjx +six==1.16.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # asttokens + # ml-collections +sympy==1.13.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +tensorboardx==2.6.2.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax +tensorstore==0.1.64 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # flax + # orbax-checkpoint +toolz==0.12.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # chex +torch==2.4.0+rocm6.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/brax/requirements.in +trimesh==4.4.7 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax + # mujoco-mjx +typing-extensions==4.12.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # brax + # chex + # etils + # flax + # orbax-checkpoint + # reactivex + # torch +varname==0.10.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +voir==0.2.17 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -c .pin/../constraints/rocm.txt + # -r benchmarks/brax/requirements.in +werkzeug==3.0.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # flask +zipp==3.20.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # etils diff --git a/benchmarks/diffusion/requirements.cuda.txt b/benchmarks/diffusion/requirements.cuda.txt index a083b0885..218990657 100644 --- a/benchmarks/diffusion/requirements.cuda.txt +++ b/benchmarks/diffusion/requirements.cuda.txt @@ -4,21 +4,18 @@ # # pip-compile --output-file=benchmarks/diffusion/requirements.cuda.txt .pin/tmp-constraints-cuda-diffusion-nodes.txt benchmarks/diffusion/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com accelerate==0.33.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/diffusion/requirements.in # diffusers -aiohappyeyeballs==2.3.4 +aiohappyeyeballs==2.4.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp -aiohttp==3.10.0 +aiohttp==3.10.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets @@ -43,7 +40,7 @@ async-timeout==4.0.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp -attrs==23.2.0 +attrs==24.2.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp @@ -59,11 +56,11 @@ codefind==0.1.6 # via # -c .pin/../.pin/constraints-cuda-torch.txt # ptera -datasets==2.20.0 +datasets==2.21.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/diffusion/requirements.in -diffusers[torch]==0.29.2 +diffusers[torch]==0.30.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/diffusion/requirements.in @@ -90,7 +87,7 @@ frozenlist==1.4.1 # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp # aiosignal -fsspec[http]==2024.5.0 +fsspec[http]==2024.6.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets @@ -105,7 +102,7 @@ hjson==3.1.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # argklass -huggingface-hub==0.24.5 +huggingface-hub==0.24.6 # via # -c .pin/../.pin/constraints-cuda-torch.txt # accelerate @@ -118,11 +115,11 @@ idna==3.7 # -c .pin/../.pin/constraints-cuda-torch.txt # requests # yarl -importlib-metadata==8.2.0 +importlib-metadata==8.4.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # diffusers -importlib-resources==6.4.0 +importlib-resources==6.4.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # argklass @@ -225,7 +222,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -ovld==0.3.6 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir @@ -258,10 +255,6 @@ pyarrow==17.0.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets -pyarrow-hotfix==0.6 - # via - # -c .pin/../.pin/constraints-cuda-torch.txt - # datasets pygments==2.18.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt @@ -278,7 +271,7 @@ pytz==2024.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # pandas -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # accelerate @@ -306,7 +299,7 @@ rich==13.7.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -safetensors==0.4.3 +safetensors==0.4.4 # via # -c .pin/../.pin/constraints-cuda-torch.txt # accelerate @@ -317,7 +310,7 @@ six==1.16.0 # -c .pin/../.pin/constraints-cuda-torch.txt # asttokens # python-dateutil -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -335,14 +328,14 @@ torchvision==0.19.0+cu121 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/diffusion/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/diffusion/requirements.in # datasets # huggingface-hub # transformers -transformers==4.43.3 +transformers==4.44.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/diffusion/requirements.in @@ -373,7 +366,7 @@ voir==0.2.17 # -c .pin/../.pin/constraints-cuda-torch.txt # -c .pin/../constraints/cuda.txt # -r benchmarks/diffusion/requirements.in -xxhash==3.4.1 +xxhash==3.5.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets @@ -381,7 +374,7 @@ yarl==1.9.4 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp -zipp==3.19.2 +zipp==3.20.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # importlib-metadata diff --git a/benchmarks/diffusion/requirements.rocm.txt b/benchmarks/diffusion/requirements.rocm.txt new file mode 100644 index 000000000..5d0fd6e3f --- /dev/null +++ b/benchmarks/diffusion/requirements.rocm.txt @@ -0,0 +1,328 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=benchmarks/diffusion/requirements.rocm.txt .pin/tmp-constraints-rocm-diffusion-nodes.txt benchmarks/diffusion/requirements.in +# +--extra-index-url https://download.pytorch.org/whl/rocm6.0 + +accelerate==0.33.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/diffusion/requirements.in + # diffusers +aiohappyeyeballs==2.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +aiohttp==3.10.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # fsspec +aiosignal==1.3.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +antlr4-python3-runtime==4.9.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # omegaconf +argklass==1.4.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/diffusion/requirements.in +asttokens==2.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +async-timeout==4.0.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +attrs==24.2.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +certifi==2024.7.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # requests +charset-normalizer==3.3.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # requests +codefind==0.1.6 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ptera +datasets==2.21.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/diffusion/requirements.in +diffusers[torch]==0.30.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/diffusion/requirements.in +dill==0.3.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # multiprocess +executing==1.2.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # varname +filelock==3.15.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # diffusers + # huggingface-hub + # pytorch-triton-rocm + # torch + # transformers +frozenlist==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp + # aiosignal +fsspec[http]==2024.6.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # huggingface-hub + # torch +giving==0.4.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ptera + # voir +hjson==3.1.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # argklass +huggingface-hub==0.24.6 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # accelerate + # datasets + # diffusers + # tokenizers + # transformers +idna==3.7 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # requests + # yarl +importlib-metadata==8.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # diffusers +importlib-resources==6.4.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # argklass +jinja2==3.1.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +markdown-it-py==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # rich +markupsafe==2.1.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # jinja2 +mdurl==0.1.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # markdown-it-py +mpmath==1.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # sympy +multidict==6.0.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp + # yarl +multiprocess==0.70.16 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets +networkx==3.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +numpy==1.26.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # accelerate + # datasets + # diffusers + # pandas + # pyarrow + # torchvision + # transformers +omegaconf==2.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +ovld==0.3.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +packaging==24.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # accelerate + # datasets + # huggingface-hub + # transformers +pandas==2.2.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets +pillow==10.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # diffusers + # torchvision +psutil==5.9.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # accelerate + # voir +ptera==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +pyarrow==17.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets +pygments==2.18.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # rich +pynvml==11.5.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +python-dateutil==2.9.0.post0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # pandas +pytorch-triton-rocm==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +pytz==2024.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # pandas +pyyaml==6.0.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # accelerate + # datasets + # huggingface-hub + # omegaconf + # transformers +reactivex==4.0.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +regex==2024.7.24 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # diffusers + # transformers +requests==2.32.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # diffusers + # huggingface-hub + # transformers +rich==13.7.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +safetensors==0.4.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # accelerate + # diffusers + # transformers +six==1.16.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # asttokens + # python-dateutil +sympy==1.13.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +tokenizers==0.19.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # transformers +torch==2.4.0+rocm6.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # accelerate + # diffusers + # torchvision +torchvision==0.19.0+rocm6.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/diffusion/requirements.in +tqdm==4.66.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/diffusion/requirements.in + # datasets + # huggingface-hub + # transformers +transformers==4.44.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/diffusion/requirements.in +typing-extensions==4.12.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # huggingface-hub + # reactivex + # torch +tzdata==2024.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # pandas +urllib3==2.2.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # requests +varname==0.10.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +voir==0.2.17 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -c .pin/../constraints/rocm.txt + # -r benchmarks/diffusion/requirements.in +xxhash==3.5.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets +yarl==1.9.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +zipp==3.20.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # importlib-metadata diff --git a/benchmarks/dinov2/requirements.cuda.txt b/benchmarks/dinov2/requirements.cuda.txt index 4a7bd9d75..6ea6389ff 100644 --- a/benchmarks/dinov2/requirements.cuda.txt +++ b/benchmarks/dinov2/requirements.cuda.txt @@ -2,12 +2,9 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --output-file=benchmarks/dinov2/requirements.cuda.txt .pin/tmp-constraints-cuda-dinov2-giant-nodes.txt benchmarks/dinov2/requirements.in +# pip-compile --output-file=benchmarks/dinov2/requirements.cuda.txt .pin/tmp-constraints-cuda-dinov2-giant-gpus.txt benchmarks/dinov2/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com antlr4-python3-runtime==4.9.3 # via @@ -34,7 +31,7 @@ filelock==3.15.4 # -c .pin/../.pin/constraints-cuda-torch.txt # torch # triton -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -145,7 +142,7 @@ omegaconf==2.3.0 # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/dinov2/requirements.in # voir -ovld==0.3.6 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir @@ -179,7 +176,7 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # fvcore @@ -205,7 +202,7 @@ submitit==1.5.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/dinov2/requirements.in -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -224,7 +221,7 @@ torch==2.4.0+cu121 # torchmetrics # torchvision # xformers -torchmetrics==1.4.0.post0 +torchmetrics==1.4.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/dinov2/requirements.in @@ -232,7 +229,7 @@ torchvision==0.19.0+cu121 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/dinov2/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # fvcore diff --git a/benchmarks/dinov2/requirements.rocm.txt b/benchmarks/dinov2/requirements.rocm.txt new file mode 100644 index 000000000..c46ba9819 --- /dev/null +++ b/benchmarks/dinov2/requirements.rocm.txt @@ -0,0 +1,216 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=benchmarks/dinov2/requirements.rocm.txt .pin/tmp-constraints-rocm-dinov2-giant-gpus.txt benchmarks/dinov2/requirements.in +# +--extra-index-url https://download.pytorch.org/whl/rocm6.0 + +antlr4-python3-runtime==4.9.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # omegaconf +asttokens==2.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +cloudpickle==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # submitit +codefind==0.1.6 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ptera +executing==1.2.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # varname +filelock==3.15.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # pytorch-triton-rocm + # torch +fsspec==2024.6.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +fvcore==0.1.5.post20221221 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/dinov2/requirements.in +giving==0.4.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ptera + # voir +iopath==0.1.10 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/dinov2/requirements.in + # fvcore +jinja2==3.1.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +lightning-utilities==0.11.6 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torchmetrics +markdown-it-py==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # rich +markupsafe==2.1.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # jinja2 +mdurl==0.1.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # markdown-it-py +mpmath==1.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # sympy +networkx==3.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +numpy==1.26.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # fvcore + # scipy + # torchmetrics + # torchvision + # xformers +omegaconf==2.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/dinov2/requirements.in + # voir +ovld==0.3.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +packaging==24.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # lightning-utilities + # torchmetrics +pillow==10.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # fvcore + # torchvision +portalocker==2.10.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # iopath +psutil==5.9.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +ptera==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +pygments==2.18.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # rich +pynvml==11.5.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +pytorch-triton-rocm==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +pyyaml==6.0.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # fvcore + # omegaconf + # yacs +reactivex==4.0.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +rich==13.7.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +scipy==1.14.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/dinov2/requirements.in +six==1.16.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # asttokens +submitit==1.5.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/dinov2/requirements.in +sympy==1.13.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +tabulate==0.9.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # fvcore +termcolor==2.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # fvcore +torch==2.4.0+rocm6.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/dinov2/requirements.in + # torchmetrics + # torchvision + # xformers +torchmetrics==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/dinov2/requirements.in +torchvision==0.19.0+rocm6.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/dinov2/requirements.in +tqdm==4.66.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # fvcore + # iopath +typing-extensions==4.12.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # iopath + # lightning-utilities + # reactivex + # submitit + # torch +varname==0.10.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +voir==0.2.17 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -c .pin/../constraints/rocm.txt + # -r benchmarks/dinov2/requirements.in +xformers==0.0.27.post2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/dinov2/requirements.in +yacs==0.1.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # fvcore + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/benchmarks/flops/requirements.cuda.txt b/benchmarks/flops/requirements.cuda.txt index 476d2fabd..90f32cdac 100644 --- a/benchmarks/flops/requirements.cuda.txt +++ b/benchmarks/flops/requirements.cuda.txt @@ -4,10 +4,7 @@ # # pip-compile --output-file=benchmarks/flops/requirements.cuda.txt .pin/tmp-constraints-cuda-flops.txt benchmarks/flops/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com antlr4-python3-runtime==4.9.3 # via @@ -30,7 +27,7 @@ filelock==3.15.4 # -c .pin/../.pin/constraints-cuda-torch.txt # torch # triton -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -39,7 +36,7 @@ giving==0.4.2 # -c .pin/../.pin/constraints-cuda-torch.txt # ptera # voir -importlib-resources==6.4.0 +importlib-resources==6.4.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torchcompat @@ -127,7 +124,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -ovld==0.3.6 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir @@ -151,7 +148,7 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # omegaconf @@ -167,7 +164,7 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # asttokens -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -185,7 +182,7 @@ torchvision==0.19.0+cu121 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/flops/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/flops/requirements.in diff --git a/benchmarks/flops/requirements.rocm.txt b/benchmarks/flops/requirements.rocm.txt index 40cf98b59..3a3f775fa 100644 --- a/benchmarks/flops/requirements.rocm.txt +++ b/benchmarks/flops/requirements.rocm.txt @@ -4,10 +4,7 @@ # # pip-compile --output-file=benchmarks/flops/requirements.rocm.txt .pin/tmp-constraints-rocm-flops.txt benchmarks/flops/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/rocm6.0 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com antlr4-python3-runtime==4.9.3 # via @@ -30,7 +27,7 @@ filelock==3.15.4 # -c .pin/../.pin/constraints-rocm-torch.txt # pytorch-triton-rocm # torch -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch @@ -39,7 +36,7 @@ giving==0.4.2 # -c .pin/../.pin/constraints-rocm-torch.txt # ptera # voir -importlib-resources==6.4.0 +importlib-resources==6.4.3 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torchcompat @@ -75,7 +72,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -ovld==0.3.5 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir @@ -99,11 +96,11 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -pytorch-triton-rocm==2.3.1 +pytorch-triton-rocm==3.0.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # omegaconf @@ -119,11 +116,11 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # asttokens -sympy==1.13.0 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch -torch==2.3.1+rocm6.0 +torch==2.4.0+rocm6.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/flops/requirements.in @@ -133,11 +130,11 @@ torchcompat==1.1.4 # -c .pin/../.pin/constraints-rocm-torch.txt # -c .pin/../constraints/rocm.txt # -r benchmarks/flops/requirements.in -torchvision==0.18.1+rocm6.0 +torchvision==0.19.0+rocm6.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/flops/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/flops/requirements.in diff --git a/benchmarks/geo_gnn/bench/models.py b/benchmarks/geo_gnn/bench/models.py index 50ac38a88..0868724a0 100644 --- a/benchmarks/geo_gnn/bench/models.py +++ b/benchmarks/geo_gnn/bench/models.py @@ -14,8 +14,14 @@ def register_model(fn): def DimeNet(args, sample, **extras): # The directional message passing neural network (DimeNet) from the “Directional Message Passing for Molecular Graphs” paper. # DimeNet transforms messages based on the angle between them in a rotation-equivariant fashion. - batch_size, out_channels = sample.y.shape - + + # PCQM4Mv2Subset: Data(x=[18, 9], edge_index=[2, 40], edge_attr=[40, 3], y=3.0476751256, pos=[18, 3], smiles='Cc1ccc([C@H]2[CH]c3cnccc3[N]C2=O)cc1') + # QM9: Data(x=[5, 11], edge_index=[2, 8], edge_attr=[8, 4], y=[1, 19], pos=[5, 3], z=[5], smiles='[H]C([H])([H])[H]', name='gdb_1', idx=[1]) + try: + batch_size, out_channels = sample.y.shape + except: + out_channels = 1 + return NS( category="3d", model=_DimeNet( diff --git a/benchmarks/geo_gnn/main.py b/benchmarks/geo_gnn/main.py index a4e58e3dd..714707f65 100644 --- a/benchmarks/geo_gnn/main.py +++ b/benchmarks/geo_gnn/main.py @@ -110,7 +110,7 @@ def batch_size(x): # train_dataset = PCQM4Mv2Subset(args.num_samples, args.root) train_dataset = QM9(args.root) - sample = train_dataset[0] + sample = next(iter(train_dataset)) info = models[args.model](args, sample=sample, @@ -137,8 +137,6 @@ def batch_size(x): device = accelerator.fetch_device(0) model = info.model.to(device) - print(model) - criterion = nn.L1Loss() # set up optimizer @@ -159,7 +157,13 @@ def batch_size(x): batch = batch.to(device) if args.use3d: - molecule_repr = model(z=batch.z, pos=batch.pos, batch=batch.batch) + + if hasattr(batch, "z"): + z = batch.z + else: + z = batch.batch + + molecule_repr = model(z=z, pos=batch.pos, batch=batch.batch) else: molecule_repr = model(x=batch.x, batch=batch.batch, edge_index=batch.edge_index, batch_size=batch_size(batch)) diff --git a/benchmarks/geo_gnn/requirements-pre.cuda.txt b/benchmarks/geo_gnn/requirements-pre.cuda.txt index 05e81d421..e55e1e5c2 100644 --- a/benchmarks/geo_gnn/requirements-pre.cuda.txt +++ b/benchmarks/geo_gnn/requirements-pre.cuda.txt @@ -2,60 +2,100 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --output-file=benchmarks/geo_gnn/requirements-pre.cuda.txt .pin/tmp-constraints-cuda-pna.txt benchmarks/geo_gnn/requirements-pre.in +# pip-compile --output-file=benchmarks/geo_gnn/requirements-pre.cuda.txt .pin/tmp-constraints-cuda-geo_gnn.txt benchmarks/geo_gnn/requirements-pre.in # --extra-index-url https://download.pytorch.org/whl/cu121 filelock==3.15.4 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # torch # triton fsspec==2024.6.1 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch jinja2==3.1.4 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch markupsafe==2.1.5 - # via jinja2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # jinja2 mpmath==1.3.0 - # via sympy + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # sympy networkx==3.3 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch nvidia-cublas-cu12==12.1.3.1 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # nvidia-cudnn-cu12 # nvidia-cusolver-cu12 # torch nvidia-cuda-cupti-cu12==12.1.105 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch nvidia-cuda-nvrtc-cu12==12.1.105 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch nvidia-cuda-runtime-cu12==12.1.105 - # via torch -nvidia-cudnn-cu12==8.9.2.26 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +nvidia-cudnn-cu12==9.1.0.70 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch nvidia-cufft-cu12==11.0.2.54 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch nvidia-curand-cu12==10.3.2.106 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch nvidia-cusolver-cu12==11.4.5.107 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch nvidia-cusparse-cu12==12.1.0.106 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # nvidia-cusolver-cu12 # torch nvidia-nccl-cu12==2.20.5 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch nvidia-nvjitlink-cu12==12.6.20 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # nvidia-cusolver-cu12 # nvidia-cusparse-cu12 nvidia-nvtx-cu12==12.1.105 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch sympy==1.13.2 - # via torch -torch==2.3.1+cu121 - # via -r benchmarks/geo_gnn/requirements-pre.in -triton==2.3.1 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +torch==2.4.0+cu121 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.in +triton==3.0.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch typing-extensions==4.12.2 - # via torch + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch diff --git a/benchmarks/geo_gnn/requirements-pre.in b/benchmarks/geo_gnn/requirements-pre.in index 07d44c05a..08ed5eeb4 100644 --- a/benchmarks/geo_gnn/requirements-pre.in +++ b/benchmarks/geo_gnn/requirements-pre.in @@ -1 +1 @@ -torch<2.4 \ No newline at end of file +torch \ No newline at end of file diff --git a/benchmarks/geo_gnn/requirements-pre.rocm.txt b/benchmarks/geo_gnn/requirements-pre.rocm.txt new file mode 100644 index 000000000..3aded346f --- /dev/null +++ b/benchmarks/geo_gnn/requirements-pre.rocm.txt @@ -0,0 +1,49 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=benchmarks/geo_gnn/requirements-pre.rocm.txt .pin/tmp-constraints-rocm-geo_gnn.txt benchmarks/geo_gnn/requirements-pre.in +# +--extra-index-url https://download.pytorch.org/whl/rocm6.0 + +filelock==3.15.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # pytorch-triton-rocm + # torch +fsspec==2024.6.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch +jinja2==3.1.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch +markupsafe==2.1.5 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # jinja2 +mpmath==1.3.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # sympy +networkx==3.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch +pytorch-triton-rocm==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch +sympy==1.13.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch +torch==2.4.0+rocm6.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.in +typing-extensions==4.12.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch diff --git a/benchmarks/geo_gnn/requirements.cuda.txt b/benchmarks/geo_gnn/requirements.cuda.txt index 35c0cf220..e02e159dd 100644 --- a/benchmarks/geo_gnn/requirements.cuda.txt +++ b/benchmarks/geo_gnn/requirements.cuda.txt @@ -2,84 +2,122 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --output-file=benchmarks/geo_gnn/requirements.cuda.txt .pin/tmp-constraints-cuda-pna.txt benchmarks/geo_gnn/requirements-pre.cuda.txt benchmarks/geo_gnn/requirements.in +# pip-compile --output-file=benchmarks/geo_gnn/requirements.cuda.txt .pin/tmp-constraints-cuda-geo_gnn.txt benchmarks/geo_gnn/requirements-pre.cuda.txt benchmarks/geo_gnn/requirements.in # --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://data.pyg.org/whl/torch-2.3.0+cu121.html -aiohappyeyeballs==2.3.5 - # via aiohttp -aiohttp==3.10.3 - # via torch-geometric +aiohappyeyeballs==2.4.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # aiohttp +aiohttp==3.10.5 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch-geometric aiosignal==1.3.1 - # via aiohttp + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # aiohttp antlr4-python3-runtime==4.9.3 - # via omegaconf + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # omegaconf asttokens==2.4.1 - # via giving + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # giving async-timeout==4.0.3 - # via aiohttp + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # aiohttp attrs==24.2.0 - # via aiohttp + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # aiohttp certifi==2024.7.4 - # via requests + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # requests charset-normalizer==3.3.2 - # via requests + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # requests codefind==0.1.6 - # via ptera + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # ptera executing==1.2.0 - # via varname + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # varname filelock==3.15.4 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch # triton frozenlist==1.4.1 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # aiohttp # aiosignal fsspec==2024.6.1 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch # torch-geometric giving==0.4.2 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # ptera # voir idna==3.7 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # requests # yarl jinja2==3.1.4 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch # torch-geometric joblib==1.4.2 - # via scikit-learn + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # scikit-learn markdown-it-py==3.0.0 - # via rich + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # rich markupsafe==2.1.5 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # jinja2 mdurl==0.1.2 - # via markdown-it-py + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # markdown-it-py mpmath==1.3.0 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # sympy multidict==6.0.5 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # aiohttp # yarl networkx==3.3 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch numpy==1.26.4 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements.in # pandas # rdkit @@ -88,138 +126,211 @@ numpy==1.26.4 # torch-geometric nvidia-cublas-cu12==12.1.3.1 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # nvidia-cudnn-cu12 # nvidia-cusolver-cu12 # torch nvidia-cuda-cupti-cu12==12.1.105 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch nvidia-cuda-nvrtc-cu12==12.1.105 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch nvidia-cuda-runtime-cu12==12.1.105 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch -nvidia-cudnn-cu12==8.9.2.26 +nvidia-cudnn-cu12==9.1.0.70 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch nvidia-cufft-cu12==11.0.2.54 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch nvidia-curand-cu12==10.3.2.106 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch nvidia-cusolver-cu12==11.4.5.107 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch nvidia-cusparse-cu12==12.1.0.106 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # nvidia-cusolver-cu12 # torch nvidia-nccl-cu12==2.20.5 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch nvidia-nvjitlink-cu12==12.6.20 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # nvidia-cusolver-cu12 # nvidia-cusparse-cu12 nvidia-nvtx-cu12==12.1.105 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch omegaconf==2.3.0 - # via voir + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # voir ovld==0.3.8 - # via voir + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # voir pandas==2.2.2 - # via -r benchmarks/geo_gnn/requirements.in + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/geo_gnn/requirements.in pillow==10.4.0 - # via rdkit + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # rdkit psutil==5.9.8 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # torch-geometric # voir ptera==1.4.1 - # via voir + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # voir pygments==2.18.0 - # via rich + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # rich pynvml==11.5.3 - # via voir + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # voir pyparsing==3.1.2 - # via torch-geometric + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch-geometric python-dateutil==2.9.0.post0 - # via pandas + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # pandas pytz==2024.1 - # via pandas + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # pandas pyyaml==6.0.2 - # via omegaconf + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # omegaconf rdkit==2024.3.5 - # via -r benchmarks/geo_gnn/requirements.in + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/geo_gnn/requirements.in reactivex==4.0.4 - # via giving + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # giving requests==2.32.3 - # via torch-geometric + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch-geometric rich==13.7.1 - # via voir + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # voir scikit-learn==1.5.1 - # via torch-geometric + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch-geometric scipy==1.14.0 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # scikit-learn # torch-cluster # torch-geometric # torch-sparse six==1.16.0 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # asttokens # python-dateutil sympy==1.13.2 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch threadpoolctl==3.5.0 - # via scikit-learn -torch==2.3.1+cu121 - # via -r benchmarks/geo_gnn/requirements-pre.cuda.txt -torch-cluster==1.6.3+pt23cu121 - # via -r benchmarks/geo_gnn/requirements.in + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # scikit-learn +torch==2.4.0+cu121 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.cuda.txt +torch-cluster==1.6.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/geo_gnn/requirements.in torch-geometric==2.5.3 - # via -r benchmarks/geo_gnn/requirements.in -torch-scatter==2.1.2+pt23cu121 - # via -r benchmarks/geo_gnn/requirements.in -torch-sparse==0.6.18+pt23cu121 - # via -r benchmarks/geo_gnn/requirements.in + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/geo_gnn/requirements.in +torch-scatter==2.1.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/geo_gnn/requirements.in +torch-sparse==0.6.18 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/geo_gnn/requirements.in tqdm==4.66.5 - # via torch-geometric -triton==2.3.1 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch-geometric +triton==3.0.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # torch typing-extensions==4.12.2 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -r benchmarks/geo_gnn/requirements-pre.cuda.txt # reactivex # torch tzdata==2024.1 - # via pandas + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # pandas urllib3==2.2.2 - # via requests + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # requests varname==0.10.0 - # via giving + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # giving voir==0.2.17 # via + # -c .pin/../.pin/constraints-cuda-gnn.txt # -c .pin/../constraints/cuda.txt # -r benchmarks/geo_gnn/requirements.in yarl==1.9.4 - # via aiohttp + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # aiohttp diff --git a/benchmarks/geo_gnn/requirements.in b/benchmarks/geo_gnn/requirements.in index 4887d68ae..6fbdd7dea 100644 --- a/benchmarks/geo_gnn/requirements.in +++ b/benchmarks/geo_gnn/requirements.in @@ -1,6 +1,3 @@ - ---find-links https://data.pyg.org/whl/torch-2.3.0+cu121.html - voir>=0.2.17,<0.3 torch-geometric torch-cluster diff --git a/benchmarks/geo_gnn/requirements.rocm.txt b/benchmarks/geo_gnn/requirements.rocm.txt new file mode 100644 index 000000000..60246f795 --- /dev/null +++ b/benchmarks/geo_gnn/requirements.rocm.txt @@ -0,0 +1,272 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=benchmarks/geo_gnn/requirements.rocm.txt .pin/tmp-constraints-rocm-geo_gnn.txt benchmarks/geo_gnn/requirements-pre.rocm.txt benchmarks/geo_gnn/requirements.in +# +--extra-index-url https://download.pytorch.org/whl/rocm6.0 + +aiohappyeyeballs==2.4.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp +aiohttp==3.10.5 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch-geometric +aiosignal==1.3.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp +antlr4-python3-runtime==4.9.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # omegaconf +asttokens==2.4.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # giving +async-timeout==4.0.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp +attrs==24.2.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp +certifi==2024.7.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # requests +charset-normalizer==3.3.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # requests +codefind==0.1.6 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # ptera +executing==1.2.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # varname +filelock==3.15.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.rocm.txt + # pytorch-triton-rocm + # torch +frozenlist==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp + # aiosignal +fsspec==2024.6.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.rocm.txt + # torch + # torch-geometric +giving==0.4.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # ptera + # voir +idna==3.7 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # requests + # yarl +jinja2==3.1.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.rocm.txt + # torch + # torch-geometric +joblib==1.4.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # scikit-learn +markdown-it-py==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # rich +markupsafe==2.1.5 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.rocm.txt + # jinja2 +mdurl==0.1.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # markdown-it-py +mpmath==1.3.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.rocm.txt + # sympy +multidict==6.0.5 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp + # yarl +networkx==3.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.rocm.txt + # torch +numpy==1.26.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements.in + # pandas + # rdkit + # scikit-learn + # scipy + # torch-geometric +omegaconf==2.3.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # voir +ovld==0.3.8 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # voir +pandas==2.2.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements.in +pillow==10.4.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # rdkit +psutil==5.9.8 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch-geometric + # voir +ptera==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # voir +pygments==2.18.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # rich +pynvml==11.5.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # voir +pyparsing==3.1.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch-geometric +python-dateutil==2.9.0.post0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # pandas +pytorch-triton-rocm==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.rocm.txt + # torch +pytz==2024.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # pandas +pyyaml==6.0.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # omegaconf +rdkit==2024.3.5 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements.in +reactivex==4.0.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # giving +requests==2.32.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch-geometric +rich==13.7.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # voir +scikit-learn==1.5.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch-geometric +scipy==1.14.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # scikit-learn + # torch-cluster + # torch-geometric + # torch-sparse +six==1.16.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # asttokens + # python-dateutil +sympy==1.13.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.rocm.txt + # torch +threadpoolctl==3.5.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # scikit-learn +torch==2.4.0+rocm6.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.rocm.txt +torch-cluster==1.6.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements.in +torch-geometric==2.5.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements.in +torch-scatter==2.1.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements.in +torch-sparse==0.6.18 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements.in +tqdm==4.66.5 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch-geometric +typing-extensions==4.12.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/geo_gnn/requirements-pre.rocm.txt + # reactivex + # torch +tzdata==2024.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # pandas +urllib3==2.2.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # requests +varname==0.10.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # giving +voir==0.2.17 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -c .pin/../constraints/rocm.txt + # -r benchmarks/geo_gnn/requirements.in +yarl==1.9.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp diff --git a/benchmarks/huggingface/requirements.cuda.txt b/benchmarks/huggingface/requirements.cuda.txt index 0e679f3eb..4074bd249 100644 --- a/benchmarks/huggingface/requirements.cuda.txt +++ b/benchmarks/huggingface/requirements.cuda.txt @@ -4,10 +4,7 @@ # # pip-compile --output-file=benchmarks/huggingface/requirements.cuda.txt .pin/tmp-constraints-cuda-hf.txt benchmarks/huggingface/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com antlr4-python3-runtime==4.9.3 # via @@ -40,7 +37,7 @@ filelock==3.15.4 # torch # transformers # triton -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # huggingface-hub @@ -50,7 +47,7 @@ giving==0.4.2 # -c .pin/../.pin/constraints-cuda-torch.txt # ptera # voir -huggingface-hub==0.24.5 +huggingface-hub==0.24.6 # via # -c .pin/../.pin/constraints-cuda-torch.txt # tokenizers @@ -143,7 +140,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -ovld==0.3.6 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir @@ -172,7 +169,7 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # huggingface-hub @@ -195,7 +192,7 @@ rich==13.7.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -safetensors==0.4.3 +safetensors==0.4.4 # via # -c .pin/../.pin/constraints-cuda-torch.txt # transformers @@ -203,7 +200,7 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # asttokens -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -215,12 +212,12 @@ torch==2.4.0+cu121 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/huggingface/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # huggingface-hub # transformers -transformers==4.43.3 +transformers==4.44.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/huggingface/requirements.in diff --git a/benchmarks/huggingface/requirements.rocm.txt b/benchmarks/huggingface/requirements.rocm.txt index ff17b478f..ca20a26bd 100644 --- a/benchmarks/huggingface/requirements.rocm.txt +++ b/benchmarks/huggingface/requirements.rocm.txt @@ -4,10 +4,7 @@ # # pip-compile --output-file=benchmarks/huggingface/requirements.rocm.txt .pin/tmp-constraints-rocm-hf.txt benchmarks/huggingface/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/rocm6.0 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com antlr4-python3-runtime==4.9.3 # via @@ -17,7 +14,7 @@ asttokens==2.4.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # giving -certifi==2024.6.2 +certifi==2024.7.4 # via # -c .pin/../.pin/constraints-rocm-torch.txt # requests @@ -40,7 +37,7 @@ filelock==3.15.4 # pytorch-triton-rocm # torch # transformers -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # huggingface-hub @@ -50,7 +47,7 @@ giving==0.4.2 # -c .pin/../.pin/constraints-rocm-torch.txt # ptera # voir -huggingface-hub==0.23.5 +huggingface-hub==0.24.6 # via # -c .pin/../.pin/constraints-rocm-torch.txt # tokenizers @@ -91,7 +88,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -ovld==0.3.5 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir @@ -100,6 +97,10 @@ packaging==24.1 # -c .pin/../.pin/constraints-rocm-torch.txt # huggingface-hub # transformers +pillow==10.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/huggingface/requirements.in psutil==5.9.8 # via # -c .pin/../.pin/constraints-rocm-torch.txt @@ -116,11 +117,11 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -pytorch-triton-rocm==2.3.1 +pytorch-triton-rocm==3.0.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # huggingface-hub @@ -130,7 +131,7 @@ reactivex==4.0.4 # via # -c .pin/../.pin/constraints-rocm-torch.txt # giving -regex==2024.5.15 +regex==2024.7.24 # via # -c .pin/../.pin/constraints-rocm-torch.txt # transformers @@ -143,7 +144,7 @@ rich==13.7.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -safetensors==0.4.3 +safetensors==0.4.4 # via # -c .pin/../.pin/constraints-rocm-torch.txt # transformers @@ -151,7 +152,7 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # asttokens -sympy==1.13.0 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch @@ -159,16 +160,16 @@ tokenizers==0.19.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # transformers -torch==2.3.1+rocm6.0 +torch==2.4.0+rocm6.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/huggingface/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-rocm-torch.txt # huggingface-hub # transformers -transformers==4.42.4 +transformers==4.44.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/huggingface/requirements.in @@ -178,7 +179,7 @@ typing-extensions==4.12.2 # huggingface-hub # reactivex # torch -urllib3==1.26.19 +urllib3==2.2.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # requests diff --git a/benchmarks/huggingface/tunableop_results0.csv b/benchmarks/huggingface/tunableop_results0.csv new file mode 100644 index 000000000..6a38d561a --- /dev/null +++ b/benchmarks/huggingface/tunableop_results0.csv @@ -0,0 +1,17 @@ +Validator,PT_VERSION,2.4.0 +Validator,ROCBLAS_VERSION,4.0.0-88df9726-dirty +Validator,HIPBLASLT_VERSION,0.6.0-592518e7 +Validator,ROCM_VERSION,6.0.0.0-91-08e5094 +Validator,GCN_ARCH_NAME,gfx942:sramecc+:xnack- +GemmTunableOp_float_NT,nt_768_3072_16384,Gemm_Rocblas_69720,0.751226 +GemmTunableOp_float_NT,nt_3072_768_16384,Gemm_Rocblas_69733,0.684042 +GemmTunableOp_float_NT,nt_768_768_16384,Gemm_Hipblaslt_NT_28806,0.264226 +GemmTunableOp_float_NT,nt_768_30522_16384,Gemm_Hipblaslt_NT_27808,5.73919 +GemmTunableOp_float_NN,nn_768_16384_3072,Gemm_Hipblaslt_NN_33293,0.701076 +GemmTunableOp_float_NN,nn_768_16384_768,Gemm_Hipblaslt_NN_33685,0.209309 +GemmTunableOp_float_NN,nn_3072_16384_768,Gemm_Hipblaslt_NN_33225,0.69655 +GemmTunableOp_float_NN,nn_768_16384_30522,Gemm_Hipblaslt_NN_33924,5.81957 +GemmTunableOp_float_TN,tn_30522_16384_768,Default,6.06459 +GemmTunableOp_float_TN,tn_768_16384_3072,Gemm_Hipblaslt_TN_34830,0.584625 +GemmTunableOp_float_TN,tn_3072_16384_768,Gemm_Rocblas_69037,0.742789 +GemmTunableOp_float_TN,tn_768_16384_768,Gemm_Rocblas_69047,0.211827 diff --git a/benchmarks/huggingface/voirfile.py b/benchmarks/huggingface/voirfile.py index 0ed042a80..b2e3ddd14 100644 --- a/benchmarks/huggingface/voirfile.py +++ b/benchmarks/huggingface/voirfile.py @@ -25,7 +25,7 @@ class Config: stop: int = 20 # Number of seconds between each gpu poll - gpu_poll: int = 3 + gpu_poll: int = 1 @configurable diff --git a/benchmarks/lightning/requirements.cuda.txt b/benchmarks/lightning/requirements.cuda.txt index d58d277e0..4776e661c 100644 --- a/benchmarks/lightning/requirements.cuda.txt +++ b/benchmarks/lightning/requirements.cuda.txt @@ -4,16 +4,13 @@ # # pip-compile --output-file=benchmarks/lightning/requirements.cuda.txt .pin/tmp-constraints-cuda-lightning-gpus.txt benchmarks/lightning/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com -aiohappyeyeballs==2.3.4 +aiohappyeyeballs==2.4.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp -aiohttp==3.10.0 +aiohttp==3.10.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # fsspec @@ -33,7 +30,7 @@ async-timeout==4.0.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp -attrs==23.2.0 +attrs==24.2.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp @@ -55,7 +52,7 @@ frozenlist==1.4.1 # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp # aiosignal -fsspec[http]==2024.5.0 +fsspec[http]==2024.6.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # lightning @@ -70,7 +67,7 @@ idna==3.7 # via # -c .pin/../.pin/constraints-cuda-torch.txt # yarl -importlib-resources==6.4.0 +importlib-resources==6.4.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torchcompat @@ -78,7 +75,7 @@ jinja2==3.1.4 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch -lightning==2.3.3 +lightning==2.4.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/lightning/requirements.in @@ -116,8 +113,6 @@ networkx==3.3 numpy==1.26.4 # via # -c .pin/../.pin/constraints-cuda-torch.txt - # lightning - # pytorch-lightning # torchmetrics # torchvision nvidia-cublas-cu12==12.1.3.1 @@ -176,7 +171,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -ovld==0.3.6 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir @@ -207,11 +202,11 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -pytorch-lightning==2.3.3 +pytorch-lightning==2.4.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # lightning -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # lightning @@ -229,7 +224,7 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # asttokens -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -246,7 +241,7 @@ torchcompat==1.1.4 # -c .pin/../.pin/constraints-cuda-torch.txt # -c .pin/../constraints/cuda.txt # -r benchmarks/lightning/requirements.in -torchmetrics==1.4.0.post0 +torchmetrics==1.4.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # lightning @@ -255,7 +250,7 @@ torchvision==0.19.0+cu121 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/lightning/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # lightning diff --git a/benchmarks/lightning/requirements.rocm.txt b/benchmarks/lightning/requirements.rocm.txt new file mode 100644 index 000000000..26fdcedfa --- /dev/null +++ b/benchmarks/lightning/requirements.rocm.txt @@ -0,0 +1,233 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=benchmarks/lightning/requirements.rocm.txt .pin/tmp-constraints-rocm-lightning-gpus.txt benchmarks/lightning/requirements.in +# +--extra-index-url https://download.pytorch.org/whl/rocm6.0 + +aiohappyeyeballs==2.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +aiohttp==3.10.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # fsspec +aiosignal==1.3.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +antlr4-python3-runtime==4.9.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # omegaconf +asttokens==2.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +async-timeout==4.0.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +attrs==24.2.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +codefind==0.1.6 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ptera +executing==1.2.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # varname +filelock==3.15.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # pytorch-triton-rocm + # torch +frozenlist==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp + # aiosignal +fsspec[http]==2024.6.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # lightning + # pytorch-lightning + # torch +giving==0.4.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ptera + # voir +idna==3.7 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # yarl +importlib-resources==6.4.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torchcompat +jinja2==3.1.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +lightning==2.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/lightning/requirements.in +lightning-utilities==0.11.6 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # lightning + # pytorch-lightning + # torchmetrics +markdown-it-py==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # rich +markupsafe==2.1.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # jinja2 +mdurl==0.1.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # markdown-it-py +mpmath==1.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # sympy +multidict==6.0.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp + # yarl +networkx==3.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +numpy==1.26.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torchmetrics + # torchvision +omegaconf==2.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +ovld==0.3.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +packaging==24.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # lightning + # lightning-utilities + # pytorch-lightning + # torchmetrics +pillow==10.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torchvision +psutil==5.9.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +ptera==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +pygments==2.18.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # rich +pynvml==11.5.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +pytorch-lightning==2.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # lightning +pytorch-triton-rocm==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +pyyaml==6.0.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # lightning + # omegaconf + # pytorch-lightning +reactivex==4.0.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +rich==13.7.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +six==1.16.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # asttokens +sympy==1.13.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +torch==2.4.0+rocm6.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/lightning/requirements.in + # lightning + # pytorch-lightning + # torchmetrics + # torchvision +torchcompat==1.1.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -c .pin/../constraints/rocm.txt + # -r benchmarks/lightning/requirements.in +torchmetrics==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # lightning + # pytorch-lightning +torchvision==0.19.0+rocm6.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/lightning/requirements.in +tqdm==4.66.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # lightning + # pytorch-lightning +typing-extensions==4.12.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # lightning + # lightning-utilities + # pytorch-lightning + # reactivex + # torch +varname==0.10.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +voir==0.2.17 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -c .pin/../constraints/rocm.txt + # -r benchmarks/lightning/requirements.in +yarl==1.9.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/benchmarks/llama/main.py b/benchmarks/llama/main.py index 696d16288..a17053296 100755 --- a/benchmarks/llama/main.py +++ b/benchmarks/llama/main.py @@ -83,6 +83,7 @@ def huggingface_main(args, model, config): # we just instantiate an untrained one println("Model") device = accelerator.fetch_device(0) + print(device) if args.pretrained: model = LlamaForCausalLM.from_pretrained(config["_name_or_path"]).to(device=device) @@ -93,7 +94,7 @@ def huggingface_main(args, model, config): pipeline = transformers.pipeline( "text-generation", model=model, - torch_dtype=torch.float16, + torch_dtype=torch.bfloat16, # device_map="cuda", tokenizer=tokenizer, device=device, diff --git a/benchmarks/llama/requirements.cuda.txt b/benchmarks/llama/requirements.cuda.txt index a7bcc156b..72a9e2dc4 100644 --- a/benchmarks/llama/requirements.cuda.txt +++ b/benchmarks/llama/requirements.cuda.txt @@ -4,16 +4,13 @@ # # pip-compile --output-file=benchmarks/llama/requirements.cuda.txt .pin/tmp-constraints-cuda-llm.txt benchmarks/llama/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com -aiohappyeyeballs==2.3.4 +aiohappyeyeballs==2.4.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp -aiohttp==3.10.0 +aiohttp==3.10.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets @@ -34,7 +31,7 @@ async-timeout==4.0.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp -attrs==23.2.0 +attrs==24.2.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp @@ -50,7 +47,7 @@ codefind==0.1.6 # via # -c .pin/../.pin/constraints-cuda-torch.txt # ptera -datasets==2.20.0 +datasets==2.21.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/llama/requirements.in @@ -84,7 +81,7 @@ frozenlist==1.4.1 # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp # aiosignal -fsspec[http]==2024.5.0 +fsspec[http]==2024.6.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets @@ -95,7 +92,7 @@ giving==0.4.2 # -c .pin/../.pin/constraints-cuda-torch.txt # ptera # voir -huggingface-hub==0.24.5 +huggingface-hub==0.24.6 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets @@ -203,7 +200,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -ovld==0.3.6 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir @@ -229,10 +226,6 @@ pyarrow==17.0.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets -pyarrow-hotfix==0.6 - # via - # -c .pin/../.pin/constraints-cuda-torch.txt - # datasets pygments==2.18.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt @@ -249,7 +242,7 @@ pytz==2024.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # pandas -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets @@ -274,7 +267,7 @@ rich==13.7.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -safetensors==0.4.3 +safetensors==0.4.4 # via # -c .pin/../.pin/constraints-cuda-torch.txt # transformers @@ -288,7 +281,7 @@ six==1.16.0 # asttokens # fire # python-dateutil -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -305,13 +298,13 @@ torch==2.4.0+cu121 # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/llama/requirements.in # fairscale -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets # huggingface-hub # transformers -transformers==4.43.3 +transformers==4.44.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/llama/requirements.in @@ -342,7 +335,7 @@ voir==0.2.17 # -c .pin/../.pin/constraints-cuda-torch.txt # -c .pin/../constraints/cuda.txt # -r benchmarks/llama/requirements.in -xxhash==3.4.1 +xxhash==3.5.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets diff --git a/benchmarks/llama/requirements.rocm.txt b/benchmarks/llama/requirements.rocm.txt index df86f9eaf..556100be8 100644 --- a/benchmarks/llama/requirements.rocm.txt +++ b/benchmarks/llama/requirements.rocm.txt @@ -4,12 +4,13 @@ # # pip-compile --output-file=benchmarks/llama/requirements.rocm.txt .pin/tmp-constraints-rocm-llm.txt benchmarks/llama/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/rocm6.0 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com -aiohttp==3.9.5 +aiohappyeyeballs==2.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +aiohttp==3.10.5 # via # -c .pin/../.pin/constraints-rocm-torch.txt # datasets @@ -30,11 +31,11 @@ async-timeout==4.0.3 # via # -c .pin/../.pin/constraints-rocm-torch.txt # aiohttp -attrs==23.2.0 +attrs==24.2.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # aiohttp -certifi==2024.6.2 +certifi==2024.7.4 # via # -c .pin/../.pin/constraints-rocm-torch.txt # requests @@ -46,7 +47,7 @@ codefind==0.1.6 # via # -c .pin/../.pin/constraints-rocm-torch.txt # ptera -datasets==2.20.0 +datasets==2.21.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/llama/requirements.in @@ -80,7 +81,7 @@ frozenlist==1.4.1 # -c .pin/../.pin/constraints-rocm-torch.txt # aiohttp # aiosignal -fsspec[http]==2024.5.0 +fsspec[http]==2024.6.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # datasets @@ -91,7 +92,7 @@ giving==0.4.2 # -c .pin/../.pin/constraints-rocm-torch.txt # ptera # voir -huggingface-hub==0.23.5 +huggingface-hub==0.24.6 # via # -c .pin/../.pin/constraints-rocm-torch.txt # datasets @@ -147,7 +148,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -ovld==0.3.5 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir @@ -173,10 +174,6 @@ pyarrow==17.0.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # datasets -pyarrow-hotfix==0.6 - # via - # -c .pin/../.pin/constraints-rocm-torch.txt - # datasets pygments==2.18.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt @@ -189,7 +186,7 @@ python-dateutil==2.9.0.post0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # pandas -pytorch-triton-rocm==2.3.1 +pytorch-triton-rocm==3.0.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch @@ -197,7 +194,7 @@ pytz==2024.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # pandas -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # datasets @@ -208,7 +205,7 @@ reactivex==4.0.4 # via # -c .pin/../.pin/constraints-rocm-torch.txt # giving -regex==2024.5.15 +regex==2024.7.24 # via # -c .pin/../.pin/constraints-rocm-torch.txt # transformers @@ -222,7 +219,7 @@ rich==13.7.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -safetensors==0.4.3 +safetensors==0.4.4 # via # -c .pin/../.pin/constraints-rocm-torch.txt # transformers @@ -236,7 +233,7 @@ six==1.16.0 # asttokens # fire # python-dateutil -sympy==1.13.0 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch @@ -248,18 +245,18 @@ tokenizers==0.19.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # transformers -torch==2.3.1+rocm6.0 +torch==2.4.0+rocm6.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/llama/requirements.in # fairscale -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-rocm-torch.txt # datasets # huggingface-hub # transformers -transformers==4.42.4 +transformers==4.44.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/llama/requirements.in @@ -273,7 +270,7 @@ tzdata==2024.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # pandas -urllib3==1.26.19 +urllib3==2.2.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # requests @@ -286,7 +283,7 @@ voir==0.2.17 # -c .pin/../.pin/constraints-rocm-torch.txt # -c .pin/../constraints/rocm.txt # -r benchmarks/llama/requirements.in -xxhash==3.4.1 +xxhash==3.5.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # datasets diff --git a/benchmarks/llm/dev.yaml b/benchmarks/llm/dev.yaml index 44386f209..e965769b1 100644 --- a/benchmarks/llm/dev.yaml +++ b/benchmarks/llm/dev.yaml @@ -13,6 +13,27 @@ _llm: method: per_gpu +llm-rlhf-single: + inherits: _llm + definition: . + install-variant: unpinned + plan: + method: per_gpu + + argv: + "{milabench_code}/recipes/lora_finetune_single_device.py": true + --config: "{milabench_code}/configs/llama3_8B_lora_single_device.yaml" + epochs=1: true + output_dir={milabench_extra}/output: true + tokenizer.path={milabench_data}/llama3_8B/original/tokenizer.model: true + checkpointer.checkpoint_dir={milabench_data}/llama3_8B/original: true + checkpointer.output_dir={milabench_data}/llama3_8B/: true + metric_logger.log_dir={milabench_extra}/metrics: true + repo_id="meta-llama/Meta-Llama-3.1-8B": true + batch_size=8: true + gradient_accumulation_steps=8: true + + llm-lora-single: inherits: _llm definition: . diff --git a/benchmarks/llm/recipes/ppo_full_finetune_single_device.py b/benchmarks/llm/recipes/ppo_full_finetune_single_device.py new file mode 100644 index 000000000..8ee77c06a --- /dev/null +++ b/benchmarks/llm/recipes/ppo_full_finetune_single_device.py @@ -0,0 +1,1084 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the BSD-style license found in the +# LICENSE file in the root directory of this source tree. + +import math +import os +import sys +from functools import partial +from itertools import chain +from typing import Any, Dict, List, Optional, Tuple +from warnings import warn + +import torch +from omegaconf import DictConfig, ListConfig +from torch import nn +from torch.optim import Optimizer +from torch.utils.data import DataLoader, DistributedSampler +from torchtune import config, modules, utils +from torchtune.datasets import ConcatDataset +from torchtune.modules import rlhf +from torchtune.modules.rlhf import PPOStats, Trajectory +from torchtune.recipe_interfaces import FTRecipeInterface +from tqdm import tqdm + + +log = utils.get_logger("DEBUG") + + +class PPOFullFinetuneRecipeSingleDevice(FTRecipeInterface): + """ + Full finetuning recipe for RLHF with PPO for dense transformer-based LLMs such as LLama2. This recipe is optimized + for single GPU training. Training on CPU is not supported. + + This implementation is based on `Learning to summarize from human feedback None: + + self._device = utils.get_device(device=cfg.device) + self._dtype = utils.get_dtype(cfg.dtype, device=self._device) + + # Disable for fp16, as we haven't validated "full" fp16 with this recipe, nor + # enabled necessary features such as gradient scaling. + if self._dtype == torch.float16: + raise RuntimeError( + "full fp16 training is not supported with this recipe. Please use bf16 or fp32 instead." + ) + + # logging attributes + self._output_dir = cfg.output_dir + self._log_every_n_steps = cfg.get("log_every_n_steps", 1) + self._log_peak_memory_stats = cfg.get("log_peak_memory_stats", False) + + # These are public properties which are updated by the checkpoint loader + # when ``resume_from_checkpoint`` is `True` or validated in tests + self.seed = utils.set_seed(seed=cfg.seed) + # manually setting up a generator for the recipe + self._rng = torch.Generator(self._device).manual_seed(self.seed) + self._total_steps = 0 + self._steps_run = 0 + self._total_epochs = 0 + self._epochs_run = 0 + self.global_step = 0 + + # Training cfg + self._resume_from_checkpoint = cfg.resume_from_checkpoint + self._gradient_accumulation_steps = cfg.gradient_accumulation_steps + + def setup(self, cfg: DictConfig) -> None: + """ + Sets up the recipe state correctly. This includes setting recipe attributes based + on the ``resume_from_checkpoint`` flag. + """ + self._metric_logger = config.instantiate(cfg.metric_logger) + + # log config with parameter override + self._metric_logger.log_config(cfg) + + # setup checkpointers + ( + self._policy_checkpointer, + ref_policy_checkpointer, + self._value_checkpointer, + reward_checkpointer, + ) = self._setup_checkpointers( + cfg.checkpointer, + cfg.ref_policy_checkpointer, + cfg.value_checkpointer, + cfg.reward_checkpointer, + ) + + # load policy checkpoints + policy_model_checkpoint_dict = self._policy_checkpointer.load_checkpoint() + ref_policy_state_dict = ref_policy_checkpointer.load_checkpoint() + + # load reward and value model checkpoints + value_model_checkpoint_dict = self._value_checkpointer.load_checkpoint() + reward_model_state_dict = reward_checkpointer.load_checkpoint() + + # update recipe state + # ``_setup_model`` handles initialization and loading the state dict. This method + # should be called before ``_setup_optimizer`` since transforming the optimizer + # state dict requires the model + self._model_compile = cfg.compile + self._optimizer_in_bwd = cfg.optimizer_in_bwd + ( + self._policy_model, + self._value_model, + self._reward_model, + self._ref_policy_model, + ) = self._setup_model( + cfg_model=cfg.policy_model, + cfg_reward_value_model=cfg.reward_and_value_model, + enable_activation_checkpointing=cfg.enable_activation_checkpointing, + compile_model=self._model_compile, + policy_state_dict=policy_model_checkpoint_dict[utils.MODEL_KEY], + ref_policy_state_dict=ref_policy_state_dict[utils.MODEL_KEY], + value_model_state_dict=value_model_checkpoint_dict[utils.MODEL_KEY], + reward_model_state_dict=reward_model_state_dict[utils.MODEL_KEY], + ) + + # setup tokenizer + self._tokenizer = config.instantiate(cfg.tokenizer) + log.info("Tokenizer is initialized from file.") + + # _setup_optimizer should take in ckpt_dict only if training is resumed from + # checkpoint. Transforming the opt state dict is handled by this method + self._optimizer = self._setup_optimizer( + cfg_optimizer=cfg.optimizer, + optimizer_in_bwd=cfg.optimizer_in_bwd, + opt_state_dict=( + policy_model_checkpoint_dict[utils.OPT_KEY] + if self._resume_from_checkpoint + else None + ), + ) + + self._loss_fn = config.instantiate(cfg.loss) + log.info("Loss is initialized.") + + # sampler and dataloader depends on the tokenizer and should be set + # setup afterit is initialized + self._sampler, self._dataloader = self._setup_data( + cfg_dataset=cfg.dataset, + shuffle=cfg.shuffle, + batch_size=cfg.batch_size, + ) + + self._setup_training_parameters(cfg) + self._setup_training_hyperparameters(cfg) + + if self._resume_from_checkpoint: + self._update_recipe_state(policy_model_checkpoint_dict) + + # one "step" is a single gradient update update over a minibatch of trajectories + self.global_step = ( + self._steps_run + * self._ppo_epochs + * (self.batch_size // self._ppo_batch_size) + ) + + def _setup_training_hyperparameters(self, cfg) -> None: + """ + Sets up the training hyperparameters for the recipe. This includes the GAE hyperparameters, + generation hyperparameters, reward masking hyperparameters, and stop token ids. + """ + + self._kl_coeff = cfg.kl_coeff + # GAE hyperparameters + self._gamma = cfg.gamma + self._lmbda = cfg.lmbda + self._whiten_rewards = cfg.whiten_rewards + + # trajectory generation args + self._temperature = cfg.temperature + self._top_k = cfg.top_k + self._max_generated_tokens = cfg.max_generated_tokens + + # reward masking args + self._min_response_length = cfg.min_response_length + self._penalise_no_eos = cfg.penalise_no_eos + self._reward_penalty = cfg.reward_penalty + + # lots of hand holding for stop tokens + if cfg.get("stop_token_ids", False): + stop_token_ids = cfg.stop_token_ids + if self._tokenizer.eos_id not in stop_token_ids: + warn( + f"tokenizer eos_id ({self._tokenizer.eos_id}) is not in stop_token_ids ({stop_token_ids})." + "This may lead to unexpected behaviour." + ) + else: + if not hasattr(self._tokenizer.stop_tokens): + warn( + "No stop tokens defined in tokenizer, and no stop_token_ids provided. This may lead to unexpected behaviour." + ) + stop_token_ids = [] + else: + stop_token_ids = self._tokenizer.stop_tokens + self._stop_token_ids = torch.tensor(stop_token_ids, device=self._device) + + def _setup_training_parameters(self, cfg: DictConfig) -> None: + """ + Validates and sets up parameters for used during training and for tracking training state, + batch sizes for model forward passes during trajectory generation, PPO minibatches, and + PPO microbatches for gradient accumulation. + + Raises + - ValueError if: + - batch_size is not divisible by forward_batch_size + - batch_size is not divisible by ppo_batch_size + - ppo_batch_size is not divisible by gradient_accumulation_steps + - num_steps is less than batch_size + - gradient_accumulation_steps > 1 and optimizer_in_bwd is True + """ + self.batch_size = cfg.batch_size + self._forward_batch_size = cfg.forward_batch_size + self._ppo_epochs = cfg.ppo_epochs + self._ppo_batch_size = cfg.ppo_batch_size + self._gradient_accumulation_steps = cfg.gradient_accumulation_steps + self._ppo_backward_batch_size = ( + cfg.ppo_batch_size // self._gradient_accumulation_steps + ) + + if self.batch_size % self._forward_batch_size != 0: + raise ValueError( + f"batch_size ({self.batch_size}) must be exactly divisible by " + f"forward_batch_size ({self._forward_batch_size})." + ) + if self.batch_size % self._ppo_batch_size != 0: + raise ValueError( + f"batch_size ({self.batch_size}) must be exactly divisible by " + f"ppo_batch_size ({self._ppo_batch_size})." + ) + if self._ppo_batch_size % self._gradient_accumulation_steps != 0: + raise ValueError( + f"ppo_batch_size ({self._ppo_batch_size}) must be exactly divisible " + f"by gradient_accumulation_steps ({self._gradient_accumulation_steps})." + ) + + if self._gradient_accumulation_steps > 1 and self._optimizer_in_bwd: + raise RuntimeError( + "Gradient accumulation is not supported with optimizer in bwd." + "Please set gradient_accumulation_steps=1, or optimizer_in_bwd=False." + ) + + self._total_steps = cfg.num_steps // self.batch_size + batches_per_epoch = max( + 1, len(self._dataloader) + ) # when we only have a single batch in the dataset + + self._total_epochs = math.ceil(self._total_steps / batches_per_epoch) + if self._total_steps == 0: + raise ValueError( + f"num_steps {cfg.num_steps} must be greater than the batch size {self.batch_size}." + ) + if self._total_steps < len(self._dataloader): + warn( + f"There are fewer total steps ({self._total_steps}, (num_steps//batch_size) " + f"than there are batches ({len(self._dataloader)}) in the dataset. " + f"Training will stop after ({self._total_steps}) steps without saving intermediate checkpoints" + ) + if (self._total_steps > batches_per_epoch) and ( + self._total_steps % batches_per_epoch != 0 + ): + warn( + f"num_steps ({cfg.num_steps}) is not exactly divisible by " + f"the number of batches in the dataset ({batches_per_epoch}). " + f"Intermediate checkpoints will only be saved every {batches_per_epoch} steps." + ) + log.info( + f"Total steps to run: {self._total_steps}, Total epochs to run: {self._total_epochs}" + ) + + def _setup_checkpointers( + self, + policy_cfg: DictConfig, + ref_policy_cfg: DictConfig, + value_cfg: DictConfig, + reward_cfg: DictConfig, + ) -> Tuple[ + utils.Checkpointer, utils.Checkpointer, utils.Checkpointer, utils.Checkpointer + ]: + """ + Sets up checkpointers for policy, reference policy, value, and reward models. + Only the policy checkpoint handles recipe state for resuming from checkpoints. + """ + + if not self._resume_from_checkpoint: + assert policy_cfg.checkpoint_dir == ref_policy_cfg.checkpoint_dir, ( + "Policy and reference policy should be loaded from the same checkpoint directories" + f"at the start of training. Found: {policy_cfg.checkpoint_dir} and" + f"{ref_policy_cfg.checkpoint_dir}" + ) + assert policy_cfg.checkpoint_files == ref_policy_cfg.checkpoint_files, ( + "Policy and reference policy should be loaded from the same checkpoint files" + f"at the start of training. Found: {policy_cfg.checkpoint_files} and" + f"{ref_policy_cfg.checkpoint_files}" + ) + + policy_checkpointer = config.instantiate( + policy_cfg, + resume_from_checkpoint=self._resume_from_checkpoint, + ) + + ref_policy_checkpointer = config.instantiate( + ref_policy_cfg, + resume_from_checkpoint=False, + ) + + value_checkpointer = config.instantiate( + value_cfg, + resume_from_checkpoint=False, + ) + + reward_checkpointer = config.instantiate( + reward_cfg, + resume_from_checkpoint=False, + ) + + return ( + policy_checkpointer, + ref_policy_checkpointer, + value_checkpointer, + reward_checkpointer, + ) + + def _setup_model( + self, + cfg_model: DictConfig, + cfg_reward_value_model: DictConfig, + enable_activation_checkpointing: bool, + compile_model: bool, + policy_state_dict: Dict[str, Any], + ref_policy_state_dict: Dict[str, Any], + value_model_state_dict: Dict[str, Any], + reward_model_state_dict: Dict[str, Any], + ) -> Tuple[nn.Module, nn.Module, nn.Module]: + """ + Sets up the policy model, reference policy model, reward model, and value model. + """ + + with utils.set_default_dtype(self._dtype), self._device: + policy_model = config.instantiate(cfg_model) + ref_policy_model = config.instantiate(cfg_model) + reward_model = config.instantiate(cfg_reward_value_model) + value_model = config.instantiate(cfg_reward_value_model) + + if enable_activation_checkpointing: + utils.set_activation_checkpointing( + policy_model, auto_wrap_policy={modules.TransformerDecoderLayer} + ) + utils.set_activation_checkpointing( + value_model, auto_wrap_policy={modules.TransformerDecoderLayer} + ) + + policy_model.load_state_dict(policy_state_dict) + ref_policy_model.load_state_dict(ref_policy_state_dict) + + reward_missing, reward_unexpected = reward_model.load_state_dict( + reward_model_state_dict, strict=False + ) + value_missing, value_unexpected = value_model.load_state_dict( + value_model_state_dict, strict=False + ) + + # some extra validation for HF classifier checkpoints with a `score.bias` present + assert ( + reward_missing == value_missing == [] + ), f"Missing keys in reward ({reward_missing}) and value model ({value_missing}) state dicts." + + if reward_unexpected or value_unexpected: + # the only unexpected keys should be when pre-trained HF models were saved with + # bias=True in final classification layers. This happens when training a reward model with TRL. + assert ( + reward_unexpected == value_unexpected == ["output.bias"] + ), f"Unexpected keys in reward ({reward_unexpected}) and value model ({value_unexpected}) state dicts." + + # Validate models were loaded in with the expected dtype. + utils.validate_expected_param_dtype( + value_model.named_parameters(), dtype=self._dtype + ) + utils.validate_expected_param_dtype( + reward_model.named_parameters(), dtype=self._dtype + ) + utils.validate_expected_param_dtype( + value_model.named_parameters(), dtype=self._dtype + ) + utils.validate_expected_param_dtype( + ref_policy_model.named_parameters(), dtype=self._dtype + ) + + log.info(f"Models are initialized with precision {self._dtype}.") + + # disabling dropout if found - non-determinism leads to issues in e.g. comparing logprobs + # between ref policy and current policy + for module in policy_model.modules(): + if isinstance(module, torch.nn.Dropout): + warn( + f"Dropout found in {module}. This is likely to cause issues during training. Disabling." + ) + module.p = 0 + for module in value_model.modules(): + if isinstance(module, torch.nn.Dropout): + warn( + f"Dropout found in {module}. This is likely to cause issues during training. Disabling." + ) + module.p = 0 + + # disabling grad and dropout in reward and reference policy models + reward_model.eval() + ref_policy_model.eval() + + for p in reward_model.parameters(): + p.requires_grad = False + + for p in ref_policy_model.parameters(): + p.requires_grad = False + + # Compile model, if enabled. + if compile_model: + backend = os.environ.get("TORCH_COMPILE_BACKEND", "inductor") + log.info("Compiling models with torch.compile...") + + policy_model.compile(backend=backend) + reward_model.compile(backend=backend) + ref_policy_model.compile(backend=backend) + value_model.compile(backend=backend) + + if self._device.type == "cuda": + memory_stats = utils.get_memory_stats(device=self._device) + utils.log_memory_stats(memory_stats) + + return policy_model, value_model, reward_model, ref_policy_model + + def _setup_optimizer( + self, + cfg_optimizer: DictConfig, + optimizer_in_bwd: bool = False, + opt_state_dict: Optional[Dict[str, Any]] = None, + ) -> Optimizer: + + if optimizer_in_bwd: + # Maintain a dict of optims for every parameter. + optim_dict = { + p: config.instantiate(cfg_optimizer, [p]) + for p in chain( + self._policy_model.parameters(), self._value_model.parameters() + ) + } + # Register optimizer step hooks on the models to run optimizer in backward. + utils.register_optim_in_bwd_hooks( + model=self._policy_model, optim_dict=optim_dict + ) + utils.register_optim_in_bwd_hooks( + model=self._value_model, optim_dict=optim_dict + ) + # Create a wrapper for checkpoint save/load of optimizer states when running in backward. + self._optim_ckpt_wrapper = utils.create_optim_in_bwd_wrapper( + model=self._policy_model, optim_dict=optim_dict + ) + self._optim_ckpt_wrapper = utils.create_optim_in_bwd_wrapper( + model=self._value_model, optim_dict=optim_dict + ) + # Load optimizer states. If optimizer states are being restored in an optimizer in backward + # run, these need to have been saved with the same setting. Cannot restore from runs that did not + # use optimizer in backward. + if opt_state_dict is not None: + try: + self._optim_ckpt_wrapper.load_state_dict(opt_state_dict) + except BaseException as e: + raise RuntimeError( + "Failed loading in-backward optimizer checkpoints." + "Please make sure run being restored from was using in-backward optimizer." + ) from e + log.info("In-backward optimizers are set up.") + return None + else: + optimizer = config.instantiate( + cfg_optimizer, + chain(self._policy_model.parameters(), self._value_model.parameters()), + ) + if opt_state_dict: + optimizer.load_state_dict(opt_state_dict) + + log.info("Optimizer is initialized.") + return optimizer + + def _setup_data( + self, cfg_dataset: DictConfig, shuffle: bool, batch_size: int + ) -> Tuple[DistributedSampler, DataLoader]: + """ + All data related setup happens here. + """ + if isinstance(cfg_dataset, ListConfig): + datasets = [ + config.instantiate(single_cfg_dataset, tokenizer=self._tokenizer) + for single_cfg_dataset in cfg_dataset + ] + ds = ConcatDataset(datasets=datasets) + else: + ds = config.instantiate(cfg_dataset, tokenizer=self._tokenizer) + + sampler = DistributedSampler( + ds, + num_replicas=1, + rank=0, + shuffle=shuffle, + seed=0, + ) + dataloader = DataLoader( + dataset=ds, + sampler=sampler, + batch_size=batch_size, + collate_fn=partial( + rlhf.left_padded_collate, + padding_idx=self._tokenizer.pad_id, + ), + drop_last=True, + ) + + return sampler, dataloader + + def save_checkpoint( + self, epoch: int, is_intermediate_checkpoint: bool = False + ) -> None: + """ + Save state dict to file. The recipe save_checkpoint method is responsible for + correctly creating the checkpoint dict and passing to the checkpointer. + """ + policy_ckpt_dict = {utils.MODEL_KEY: self._policy_model.state_dict()} + value_ckpt_dict = {utils.MODEL_KEY: self._value_model.state_dict()} + + # if training is in-progress, checkpoint the optimizer state and rng state as well + if is_intermediate_checkpoint: + policy_ckpt_dict.update( + { + utils.SEED_KEY: self.seed, + utils.EPOCHS_KEY: self._epochs_run, + utils.TOTAL_EPOCHS_KEY: self._total_epochs, + utils.MAX_STEPS_KEY: self._total_steps, + utils.STEPS_KEY: self._steps_run, + utils.RNG_KEY: self._rng.get_state(), + } + ) + if not self._optimizer_in_bwd: + policy_ckpt_dict[utils.OPT_KEY] = self._optimizer.state_dict() + else: + policy_ckpt_dict[utils.OPT_KEY] = self._optim_ckpt_wrapper.state_dict() + + self._policy_checkpointer.save_checkpoint( + policy_ckpt_dict, + epoch=epoch, + intermediate_checkpoint=is_intermediate_checkpoint, + ) + + self._value_checkpointer.save_checkpoint( + value_ckpt_dict, + epoch=epoch, + intermediate_checkpoint=False, + ) + + def _update_recipe_state(self, ckpt_dict: Dict[str, Any]) -> None: + """ + Updates the recipe state from checkpoint. + """ + # If seed or total_steps, or total_epochs don't match, + # warn the user and overwrite. + try: + if ( + self.seed != ckpt_dict[utils.SEED_KEY] + or self._total_steps != ckpt_dict[utils.MAX_STEPS_KEY] + or self._total_epochs != ckpt_dict[utils.TOTAL_EPOCHS_KEY] + ): + warn( + message="""Configured value for seed, total_steps, or total_epochs + does not match the value stored in checkpoint.""" + ) + self.seed = utils.set_seed(seed=ckpt_dict[utils.SEED_KEY]) + self._rng.set_state(ckpt_dict[utils.RNG_KEY]) + self._steps_run = ckpt_dict[utils.STEPS_KEY] + self._total_steps = ckpt_dict[utils.MAX_STEPS_KEY] + self._total_epochs = ckpt_dict[utils.TOTAL_EPOCHS_KEY] + self._epochs_run = ckpt_dict[utils.EPOCHS_KEY] + + except KeyError as e: + raise KeyError from e( + "Checkpoint does not contain the required keys needed for updating recipe state." + "Are you sure you passed in the right recipe checkpoint?" + ) + + def generate_trajectory(self, input_ids: torch.Tensor) -> Trajectory: + """ + Generates a trajectory given the current policy and value models, the reference policy model, the reward model, + and batch of inputs. This is done over the following steps: + + 1: Generate responses, and logits corresponding to the responses using the current policy, + generating (query, response) pairs. + 2. Estimate logprobs of the generated responses using the current policy. + 3. Estimate values from the generated responses using the current value function. + 4. Replace any tokens in the response after the first stop token (usually EOS token) with padding, + producting truncated responses. + 5. Run the reward model on the (query, truncated-response) pairs. + 6. Mask out all the invalid values in the trajectory due to padding tokens. + + Args: + input_ids (torch.Tensor): tensor of input token IDs with shape [b, seq_length] + + Returns: + Trajectory: An instance of :class:`~torchtune.modules.rlhf.Trajectory` comprising + the current trajectory. + """ + batch_size, context_length = input_ids.shape + + # step 1: generate responses, and logits corresponding to the responses using the current policy + query_responses, logits = rlhf.generate_with_logits( + model=self._policy_model, + prompt=input_ids, + max_generated_tokens=self._max_generated_tokens, + temperature=self._temperature, + top_k=self._top_k, + pad_id=self._tokenizer.pad_id, + rng=self._rng, + ) + + responses = query_responses[:, context_length:].clone() + query_response_padding_masks = query_responses == self._tokenizer.pad_id + + # step 1.1 create attention masks and position IDs for any padding tokens in inputs, used for future forward passes + masks = rlhf.get_causal_mask(~(query_response_padding_masks)) + position_ids = (~query_response_padding_masks).cumsum(-1) - ( + ~query_response_padding_masks + ).long() + position_ids = position_ids.type(torch.int) + + del query_response_padding_masks + + # step 2. estimate logprobs of the responses using the current policy + logits = logits[:, context_length - 1 :] + logprobs = rlhf.logits_to_logprobs(logits, responses, self._temperature) + + del logits + + # step 2.1 estimate logprobs of the responses using the reference policy + ref_logits = self._ref_policy_model( + query_responses, input_pos=position_ids, mask=masks + ) + ref_logits = rlhf.truncate_sequence_for_logprobs(ref_logits, context_length) + ref_logprobs = rlhf.logits_to_logprobs(ref_logits, responses, self._temperature) + + del ref_logits + + # step 3. estimate values from the responses using the value function + values = self._value_model(query_responses, input_pos=position_ids, mask=masks) + values = rlhf.truncate_sequence_for_logprobs(values, context_length).squeeze(-1) + + # step 4. replace any tokens in the responses after the first stop token (usually EOS token) with padding + # resulting in truncated responses + response_padding_masks, responses = rlhf.truncate_sequence_at_first_stop_token( + responses, self._stop_token_ids, self._tokenizer.pad_id + ) + + # step 5. run the reward model on the (query, truncated-response) pairs + scores = self._reward_model( + torch.cat([input_ids, responses], dim=1), + input_pos=position_ids, + mask=masks, + ) + + del responses + + # step 5.1 the scores from the reward model are the logits for the last non-padding token in + # each (query, truncated-response) pair + seq_lens = utils.get_unmasked_sequence_lengths(response_padding_masks) + scores = scores[torch.arange(batch_size), seq_lens + context_length].squeeze(-1) + + # step 5.2 if configured, apply any penalties for sequences without EOS tokens + # or shorter than a certain length + if self._penalise_no_eos or self._min_response_length: + reward_penalty_mask = rlhf.get_reward_penalty_mask( + response_padding_masks, + seq_lens, + self._penalise_no_eos, + self._min_response_length, + ) + scores[reward_penalty_mask] = self._reward_penalty + + # step 6. mask out all the invalid values in the trajectory due to padding tokens + logprobs[response_padding_masks] = 1.0 + ref_logprobs[response_padding_masks] = 1.0 + + # step 6.1 values are masked out *after* the last valid token in the response + value_seq_idxs = torch.where( + (seq_lens > 0) & (seq_lens < self._max_generated_tokens - 1), + seq_lens + 1, + seq_lens, + ) + value_padding_masks = response_padding_masks.clone() + value_padding_masks[ + torch.arange(batch_size, device=value_padding_masks.device), + value_seq_idxs, + ] = False + + values[value_padding_masks] = 0.0 + + return Trajectory( + query_responses=query_responses, + logprobs=logprobs, + ref_logprobs=ref_logprobs, + values=values, + masks=masks, + position_ids=position_ids, + response_padding_masks=response_padding_masks, + value_padding_masks=value_padding_masks, + value_seq_idxs=value_seq_idxs, + scores=scores, + seq_lens=seq_lens, + ) + + def generate_trajectory_batched(self, input_ids: torch.Tensor) -> Trajectory: + """ + Generates a ``self.batch_size`` batch of trajectories using `self._forward_batch_size` batch sizes. + See ``generate_trajectory`` for more details. + + Args: + input_ids (torch.Tensor): tensor of input token IDs with shape [b, seq_length] + + Returns: + Trajectory: An instance of :class:`~torchtune.modules.rlhf.Trajectory`, comprising + the current trajectory. + """ + trajectories: List[Trajectory] = [] + with torch.no_grad(): + for batch_start in range(0, self.batch_size, self._forward_batch_size): + batch_input_ids = input_ids[ + batch_start : batch_start + self._forward_batch_size + ] + trajectories.append(self.generate_trajectory(batch_input_ids)) + return Trajectory(*map(torch.cat, zip(*trajectories))) + + def train(self) -> None: + """ + The core training loop.""" + + if self._model_compile: + log.info( + "NOTE: torch.compile is enabled and model is compiled in first forward." + "Expect a relatively slow first iteration." + ) + # zero out the gradients before starting training + if not self._optimizer_in_bwd: + self._optimizer.zero_grad() + + training_completed = False + pbar = tqdm(total=self._total_steps, initial=self._steps_run) + for curr_epoch in range(self._epochs_run, self._total_epochs): + # Update the sampler to ensure data is correctly shuffled across epochs + # in case shuffle is True + self._sampler.set_epoch(curr_epoch) + + for _, batch in enumerate(self._dataloader): + batch = batch.to(self._device) + _, context_length = batch.shape + + # step 1. generate the trajectory using: + # - the current policy (pi_theta) + # - the current value function (V_phi) + # - the reference frozen policy model (pi_theta_0) + trajectory = self.generate_trajectory_batched(batch) + + # step 2. get the rewards for the current trajectory. these are based on: + # - the divergence between the current policy and the reference policy + # - the scores from the reward model + rewards, kl, kl_rewards = rlhf.get_rewards_ppo( + trajectory.scores, + trajectory.logprobs, + trajectory.ref_logprobs, + self._kl_coeff, + trajectory.value_seq_idxs, + ) + + # step 3. estimate the advantages using Generalized Advantage Estimation (GAE) + advantages, returns = rlhf.estimate_advantages( + trajectory.values, + rewards, + self._gamma, + self._lmbda, + masks=~trajectory.response_padding_masks, + ) + + # step 4. optimise using the PPO objective over multiple epochs + ppo_stats: List[PPOStats] = [] + for _ in range(self._ppo_epochs): + batch_idxs = torch.randperm(self.batch_size, device=self._device) + for i in range(0, self.batch_size, self._ppo_batch_size): + mini_batch_idxs = batch_idxs[i : i + self._ppo_batch_size] + + batch_ppo_stats: List[PPOStats] = [] + for j in range( + 0, self._ppo_batch_size, self._ppo_backward_batch_size + ): + backward_batch_idxs = mini_batch_idxs[ + j : j + self._ppo_backward_batch_size + ] + + batch_trajectory = Trajectory( + *map( + partial( + torch.index_select, + dim=0, + index=backward_batch_idxs, + ), + trajectory, + ) + ) + batch_ppo_stats.append( + self._ppo_step( + batch_trajectory, + advantages[backward_batch_idxs], + returns[backward_batch_idxs], + context_length, + ) + ) + del batch_trajectory + + ppo_stats.append(PPOStats(*map(sum, zip(*batch_ppo_stats)))) + + if not self._optimizer_in_bwd: + self._optimizer.step() + self._optimizer.zero_grad(set_to_none=True) + + self.global_step += 1 + + # step 5. profit + self._steps_run += 1 + if self._steps_run % self._log_every_n_steps == 0: + self.log_metrics( + trajectory, + PPOStats(*map(torch.stack, zip(*ppo_stats))), + kl, + kl_rewards, + ) + self.cleanup_after_step( + trajectory, ppo_stats, advantages, returns, kl, kl_rewards + ) + pbar.update(1) + if self._steps_run == self._total_steps: + training_completed = True + break + + # save checkpoint at current epoch + self._epochs_run += 1 + + self.save_checkpoint( + curr_epoch, is_intermediate_checkpoint=not training_completed + ) + if training_completed: + return + + def _ppo_step( + self, + trajectory: Trajectory, + advantages: torch.Tensor, + returns: torch.Tensor, + context_length: int, + ) -> PPOStats: + """ + Perform a single PPO optimisation step over a batch of trajectories and corresponding advantages and returns. + + Args: + trajectory (Trajectory): a batch of trajectories + advantages (torch.Tensor): advantages corresponding to the trajectories + returns (torch.Tensor): returns corresponding the trajectories + context_length (int): input ids sequence length + + Returns: + PPOStats: An instance of :class:`~torchtune.modules.rlhf.PPOStats`, a NamedTuple containing: + - loss (torch.Tensor): The total PPO loss. + - policy_loss (torch.Tensor): The policy function loss. + - value_loss (torch.Tensor): The value function loss. + - ratios (torch.Tensor): The ratio between the current and old policy probabilities. + - clipfrac (torch.Tensor): The fraction of ratios that were clipped. + - approx_policy_kls: Average estimated KL divergence between the policy before and after the optimisation step. + + """ + # estimate logprobs from the policy at the current optimisation step + pi_logits = self._policy_model( + trajectory.query_responses, + input_pos=trajectory.position_ids, + mask=trajectory.masks, + ) + pi_logits = rlhf.truncate_sequence_for_logprobs(pi_logits, context_length) + pi_logprobs = rlhf.logits_to_logprobs( + pi_logits, trajectory.query_responses[:, context_length:], self._temperature + ) + pi_logprobs[trajectory.response_padding_masks] = 1.0 + + del pi_logits + + # estimate the values from the value function at the current optimisation step + phi_values = self._value_model( + trajectory.query_responses, + input_pos=trajectory.position_ids, + mask=trajectory.masks, + ) + + phi_values = rlhf.truncate_sequence_for_logprobs( + phi_values, context_length + ).squeeze(-1) + phi_values[trajectory.value_padding_masks] = 0.0 + + # calculate ppo loss + loss, policy_loss, value_loss, ratios, clipfrac = self._loss_fn( + trajectory.logprobs, + pi_logprobs, + advantages, + trajectory.values, + phi_values, + returns, + padding_masks=~trajectory.response_padding_masks, + value_padding_masks=~trajectory.value_padding_masks, + ) + + loss /= self._gradient_accumulation_steps + loss.backward() + + with torch.no_grad(): + approx_policy_kls = ( + 0.5 * (pi_logprobs - trajectory.logprobs).pow(2) + ).mean() + + return PPOStats( + loss, + policy_loss / self._gradient_accumulation_steps, + value_loss / self._gradient_accumulation_steps, + ratios / self._gradient_accumulation_steps, + clipfrac / self._gradient_accumulation_steps, + approx_policy_kls / self._gradient_accumulation_steps, + ) + + def log_metrics( + self, + trajectory: Trajectory, + ppo_stats: PPOStats, + kl: torch.Tensor, + kl_rewards: torch.Tensor, + ) -> None: + """ + Log metrics and statistics for the current step to the metric logger. + """ + log_dict = { + "scores": trajectory.scores.mean(), + "num_stop_tokens": trajectory.response_padding_masks.any(-1).sum(), + "rlhf_reward": trajectory.scores.mean() + kl_rewards.sum(1).mean(), + "kl": kl.sum(1).mean(), + "kl_reward": kl_rewards.sum(1).mean(), + "loss": ppo_stats.loss.mean(), + "policy_loss": ppo_stats.policy_loss.mean(), + "value_loss": ppo_stats.value_loss.mean(), + "clipfrac": ppo_stats.clipfrac.mean(), + "ratios": ppo_stats.ratios.mean(), + "approx_policy_kl": ppo_stats.approx_policy_kls.mean(), + "response_lengths": trajectory.seq_lens.float().mean(), + } + if self._device.type == "cuda" and self._log_peak_memory_stats: + log_dict.update(utils.get_memory_stats(device=self._device)) + + self._metric_logger.log_dict(log_dict, step=self.global_step) + + def cleanup_after_step( + self, + trajectory: Trajectory, + ppo_stats: PPOStats, + advantages: torch.Tensor, + returns: torch.Tensor, + kl: torch.Tensor, + kl_rewards: torch.Tensor, + ) -> None: + """ + Cleanup tensors after each PPO step to free up memory. + """ + # there shouldn't be any floating references to the individual tensors at the this point, so gc can do its thing + for v in trajectory: + del v + del trajectory + for v in ppo_stats: + del v + del ppo_stats + del advantages + del returns + del kl + del kl_rewards + + def cleanup(self, **kwargs) -> None: + self._metric_logger.close() + + +@config.parse +def recipe_main(cfg: DictConfig) -> None: + """ + Entry point for the recipe. + + Configurable parameters are read in the following order: + - Parameters specified in config (see available configs through ``tune ls``) + - Overwritten by arguments from the command-line + """ + config.log_config(recipe_name="PPOFullFinetuneRecipeSingleDevice", cfg=cfg) + recipe = PPOFullFinetuneRecipeSingleDevice(cfg=cfg) + recipe.setup(cfg=cfg) + recipe.train() + recipe.cleanup() + + +if __name__ == "__main__": + sys.exit(recipe_main()) diff --git a/benchmarks/llm/requirements.cuda.txt b/benchmarks/llm/requirements.cuda.txt index 9234ded37..387a0f13c 100644 --- a/benchmarks/llm/requirements.cuda.txt +++ b/benchmarks/llm/requirements.cuda.txt @@ -4,16 +4,13 @@ # # pip-compile --output-file=benchmarks/llm/requirements.cuda.txt .pin/tmp-constraints-cuda-llm-full-mp-nodes.txt benchmarks/llm/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com -aiohappyeyeballs==2.3.4 +aiohappyeyeballs==2.4.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp -aiohttp==3.10.0 +aiohttp==3.10.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets @@ -38,7 +35,7 @@ async-timeout==4.0.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp -attrs==23.2.0 +attrs==24.2.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp @@ -58,7 +55,7 @@ codefind==0.1.6 # via # -c .pin/../.pin/constraints-cuda-torch.txt # ptera -datasets==2.20.0 +datasets==2.21.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torchtune @@ -84,7 +81,7 @@ frozenlist==1.4.1 # -c .pin/../.pin/constraints-cuda-torch.txt # aiohttp # aiosignal -fsspec[http]==2024.5.0 +fsspec[http]==2024.6.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets @@ -99,7 +96,7 @@ hjson==3.1.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # argklass -huggingface-hub==0.24.5 +huggingface-hub==0.24.6 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets @@ -109,7 +106,7 @@ idna==3.7 # -c .pin/../.pin/constraints-cuda-torch.txt # requests # yarl -importlib-resources==6.4.0 +importlib-resources==6.4.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # argklass @@ -214,7 +211,7 @@ omegaconf==2.3.0 # -c .pin/../.pin/constraints-cuda-torch.txt # torchtune # voir -ovld==0.3.6 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir @@ -239,10 +236,6 @@ pyarrow==17.0.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets -pyarrow-hotfix==0.6 - # via - # -c .pin/../.pin/constraints-cuda-torch.txt - # datasets pycryptodomex==3.20.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt @@ -263,7 +256,7 @@ pytz==2024.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # pandas -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/llm/requirements.in @@ -288,7 +281,7 @@ rich==13.7.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -safetensors==0.4.3 +safetensors==0.4.4 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torchtune @@ -301,7 +294,7 @@ six==1.16.0 # -c .pin/../.pin/constraints-cuda-torch.txt # asttokens # python-dateutil -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -321,7 +314,7 @@ torchtune==0.2.1+cu121 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/llm/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets @@ -355,7 +348,7 @@ voir==0.2.17 # -c .pin/../.pin/constraints-cuda-torch.txt # -c .pin/../constraints/cuda.txt # -r benchmarks/llm/requirements.in -xxhash==3.4.1 +xxhash==3.5.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # datasets diff --git a/benchmarks/llm/requirements.rocm.txt b/benchmarks/llm/requirements.rocm.txt new file mode 100644 index 000000000..ab5098d08 --- /dev/null +++ b/benchmarks/llm/requirements.rocm.txt @@ -0,0 +1,306 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=benchmarks/llm/requirements.rocm.txt .pin/tmp-constraints-rocm-llm-full-mp-nodes.txt benchmarks/llm/requirements.in +# +--extra-index-url https://download.pytorch.org/whl/rocm6.0 + +aiohappyeyeballs==2.4.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +aiohttp==3.10.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # fsspec +aiosignal==1.3.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +antlr4-python3-runtime==4.9.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # omegaconf +argklass==1.4.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/llm/requirements.in +asttokens==2.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +async-timeout==4.0.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +attrs==24.2.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp +blobfile==2.1.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torchtune +certifi==2024.7.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # requests +charset-normalizer==3.3.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # requests +codefind==0.1.6 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ptera +datasets==2.21.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torchtune +dill==0.3.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # multiprocess +executing==1.2.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # varname +filelock==3.15.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # blobfile + # datasets + # huggingface-hub + # pytorch-triton-rocm + # torch +frozenlist==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp + # aiosignal +fsspec[http]==2024.6.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # huggingface-hub + # torch +giving==0.4.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ptera + # voir +hjson==3.1.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # argklass +huggingface-hub==0.24.6 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # torchtune +idna==3.7 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # requests + # yarl +importlib-resources==6.4.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # argklass +jinja2==3.1.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +lxml==4.9.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # blobfile +markdown-it-py==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # rich +markupsafe==2.1.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # jinja2 +mdurl==0.1.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # markdown-it-py +mpmath==1.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # sympy +multidict==6.0.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp + # yarl +multiprocess==0.70.16 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets +networkx==3.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +numpy==1.26.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # pandas + # pyarrow + # torchtune +omegaconf==2.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torchtune + # voir +ovld==0.3.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +packaging==24.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # huggingface-hub +pandas==2.2.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets +psutil==5.9.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +ptera==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +pyarrow==17.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets +pycryptodomex==3.20.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # blobfile +pygments==2.18.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # rich +pynvml==11.5.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +python-dateutil==2.9.0.post0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # pandas +pytorch-triton-rocm==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +pytz==2024.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # pandas +pyyaml==6.0.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/llm/requirements.in + # datasets + # huggingface-hub + # omegaconf +reactivex==4.0.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +regex==2024.7.24 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # tiktoken +requests==2.32.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # huggingface-hub + # tiktoken +rich==13.7.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +safetensors==0.4.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torchtune +sentencepiece==0.2.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torchtune +six==1.16.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # asttokens + # python-dateutil +sympy==1.13.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +tiktoken==0.7.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torchtune +torch==2.4.0+rocm6.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/llm/requirements.in +torchao==0.3.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torchtune +torchtune==0.2.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/llm/requirements.in +tqdm==4.66.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets + # huggingface-hub + # torchtune +typing-extensions==4.12.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # huggingface-hub + # reactivex + # torch +tzdata==2024.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # pandas +urllib3==2.2.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # blobfile + # requests +varname==0.10.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +voir==0.2.17 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -c .pin/../constraints/rocm.txt + # -r benchmarks/llm/requirements.in +xxhash==3.5.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # datasets +yarl==1.9.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # aiohttp diff --git a/benchmarks/recursiongfn/benchfile.py b/benchmarks/recursiongfn/benchfile.py index ff486dec7..1d5d46351 100644 --- a/benchmarks/recursiongfn/benchfile.py +++ b/benchmarks/recursiongfn/benchfile.py @@ -1,6 +1,9 @@ from milabench.pack import Package +URL = "https://github.com/Delaunay/gflownet/" +BRANCH = "milabench" + class Recursiongfn(Package): # Requirements file installed by install(). It can be empty or absent. base_requirements = "requirements.in" @@ -14,13 +17,13 @@ class Recursiongfn(Package): main_script = "main.py" # You can remove the functions below if you don't need to modify them. - - def make_env(self): - # Return a dict of environment variables for prepare_script and - # main_script. - return super().make_env() + def clone(self): + gflownet = self.dirs.code / "gflownet" + if not gflownet.exists(): + gflownet.clone_subtree(URL, BRANCH) async def install(self): + self.clone() await super().install() # super() call installs the requirements async def prepare(self): diff --git a/benchmarks/recursiongfn/main.py b/benchmarks/recursiongfn/main.py index 2933647e9..81d08e8aa 100644 --- a/benchmarks/recursiongfn/main.py +++ b/benchmarks/recursiongfn/main.py @@ -5,13 +5,13 @@ import datetime import os -import random -import time from pathlib import Path from typing import Callable +import sys +sys.path.append(os.path.join(os.path.dirname(__file__), "gflownet", "src")) + import numpy as np -import torch import torch.nn as nn import torchcompat.core as accelerator from gflownet.config import Config, init_empty diff --git a/benchmarks/recursiongfn/prepare.py b/benchmarks/recursiongfn/prepare.py index 3c9539548..89cafada3 100755 --- a/benchmarks/recursiongfn/prepare.py +++ b/benchmarks/recursiongfn/prepare.py @@ -1,11 +1,16 @@ #!/usr/bin/env python import os -from gflownet.models.bengio2021flow import load_original_model + from pathlib import Path +import sys +sys.path.append(os.path.join(os.path.dirname(__file__), "gflownet", "src")) + if __name__ == "__main__": + from gflownet.models.bengio2021flow import load_original_model + # If you need the whole configuration: # config = json.loads(os.environ["MILABENCH_CONFIG"]) print("+ Full environment:\n{}\n***".format(os.environ)) diff --git a/benchmarks/recursiongfn/requirements.cuda.txt b/benchmarks/recursiongfn/requirements.cuda.txt new file mode 100644 index 000000000..46807b418 --- /dev/null +++ b/benchmarks/recursiongfn/requirements.cuda.txt @@ -0,0 +1,492 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=benchmarks/recursiongfn/requirements.cuda.txt .pin/tmp-constraints-cuda-recursiongfn_gnn.txt benchmarks/recursiongfn/requirements.in +# +--extra-index-url https://download.pytorch.org/whl/cu121 + +absl-py==2.1.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # tensorboard +aiohappyeyeballs==2.4.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # aiohttp +aiohttp==3.10.5 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch-geometric +aiosignal==1.3.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # aiohttp +antlr4-python3-runtime==4.9.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # omegaconf +asttokens==2.4.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # giving +async-timeout==4.0.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # aiohttp +attrs==24.2.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # aiohttp +blosc2==2.7.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # tables +botorch==0.11.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +certifi==2024.7.4 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # requests + # sentry-sdk +charset-normalizer==3.3.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # requests +click==8.1.7 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # wandb +codefind==0.1.6 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # ptera +cvxopt==1.3.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +docker-pycreds==0.4.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # wandb +executing==1.2.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # varname +filelock==3.15.4 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch + # triton +frozenlist==1.4.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # aiohttp + # aiosignal +fsspec==2024.6.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch + # torch-geometric +gitdb==4.0.11 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # gitpython +gitpython==3.1.43 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in + # wandb +giving==0.4.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # ptera + # voir +gpytorch==1.12 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in + # botorch +grpcio==1.65.5 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # tensorboard +idna==3.7 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # requests + # yarl +jaxtyping==0.2.33 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # linear-operator +jinja2==3.1.4 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch + # torch-geometric +joblib==1.4.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # scikit-learn +linear-operator==0.5.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # botorch + # gpytorch +markdown==3.7 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # tensorboard +markdown-it-py==3.0.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # rich +markupsafe==2.1.5 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # jinja2 + # werkzeug +mdurl==0.1.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # markdown-it-py +mpmath==1.3.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # botorch + # gpytorch + # sympy +msgpack==1.0.8 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # blosc2 +multidict==6.0.5 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # aiohttp + # yarl +multipledispatch==1.0.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # botorch +ndindex==1.8 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # blosc2 +networkx==3.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in + # torch +numexpr==2.10.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # blosc2 + # tables +numpy==1.26.4 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # blosc2 + # botorch + # numexpr + # opt-einsum + # pandas + # pyarrow + # pyro-ppl + # rdkit + # scikit-learn + # scipy + # tables + # tensorboard + # torch-geometric +nvidia-cublas-cu12==12.1.3.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # nvidia-cudnn-cu12 + # nvidia-cusolver-cu12 + # torch +nvidia-cuda-cupti-cu12==12.1.105 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +nvidia-cuda-nvrtc-cu12==12.1.105 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +nvidia-cuda-runtime-cu12==12.1.105 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +nvidia-cudnn-cu12==9.1.0.70 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +nvidia-cufft-cu12==11.0.2.54 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +nvidia-curand-cu12==10.3.2.106 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +nvidia-cusolver-cu12==11.4.5.107 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +nvidia-cusparse-cu12==12.1.0.106 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # nvidia-cusolver-cu12 + # torch +nvidia-nccl-cu12==2.20.5 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +nvidia-nvjitlink-cu12==12.6.20 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # nvidia-cusolver-cu12 + # nvidia-cusparse-cu12 +nvidia-nvtx-cu12==12.1.105 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +omegaconf==2.3.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in + # voir +opt-einsum==3.3.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # pyro-ppl +ovld==0.3.8 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # voir +packaging==24.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # tables + # tensorboard +pandas==2.2.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +pillow==10.4.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # rdkit +platformdirs==4.2.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # wandb +protobuf==5.27.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # tensorboard + # wandb +psutil==5.9.8 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch-geometric + # voir + # wandb +ptera==1.4.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # voir +py-cpuinfo==9.0.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # blosc2 + # tables +pyarrow==17.0.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +pygments==2.18.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # rich +pynvml==11.5.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # voir +pyparsing==3.1.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch-geometric +pyro-api==0.1.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # pyro-ppl +pyro-ppl==1.9.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in + # botorch +python-dateutil==2.9.0.post0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # pandas +pytz==2024.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # pandas +pyyaml==6.0.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # omegaconf + # wandb +rdkit==2024.3.5 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +reactivex==4.0.4 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # giving +requests==2.32.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch-geometric + # wandb +rich==13.7.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # voir +scikit-learn==1.5.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # gpytorch + # torch-geometric +scipy==1.14.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in + # botorch + # gpytorch + # linear-operator + # scikit-learn + # torch-cluster + # torch-geometric + # torch-sparse +sentry-sdk==2.13.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # wandb +setproctitle==1.3.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # wandb +six==1.16.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # asttokens + # docker-pycreds + # python-dateutil + # tensorboard +smmap==5.0.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # gitdb +sympy==1.13.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +tables==3.10.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +tensorboard==2.17.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +tensorboard-data-server==0.7.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # tensorboard +threadpoolctl==3.5.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # scikit-learn +torch==2.4.0+cu121 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in + # botorch + # linear-operator + # pyro-ppl +torch-cluster==1.6.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +torch-geometric==2.5.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +torch-scatter==2.1.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +torch-sparse==0.6.18 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +tqdm==4.66.5 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # pyro-ppl + # torch-geometric +triton==3.0.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # torch +typeguard==2.13.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # jaxtyping + # linear-operator +typing-extensions==4.12.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # reactivex + # tables + # torch +tzdata==2024.1 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # pandas +urllib3==2.2.2 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # requests + # sentry-sdk +varname==0.10.0 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # giving +voir==0.2.17 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -c .pin/../constraints/cuda.txt + # -r benchmarks/recursiongfn/requirements.in +wandb==0.17.7 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +werkzeug==3.0.3 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # tensorboard +yarl==1.9.4 + # via + # -c .pin/../.pin/constraints-cuda-gnn.txt + # aiohttp + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/benchmarks/recursiongfn/requirements.in b/benchmarks/recursiongfn/requirements.in index 15b6e7a55..77df598d3 100644 --- a/benchmarks/recursiongfn/requirements.in +++ b/benchmarks/recursiongfn/requirements.in @@ -1,5 +1,20 @@ voir>=0.2.17,<0.3 torch -gflownet @ git+https://github.com/recursionpharma/gflownet@bengioe-mila-demo ---find-links https://data.pyg.org/whl/torch-2.1.2+cu121.html - +torch-geometric +torch-scatter +torch-sparse +torch-cluster +rdkit +tables +scipy +networkx +tensorboard +cvxopt +pyarrow +gitpython +botorch +pyro-ppl +gpytorch +omegaconf>=2.3 +wandb +pandas diff --git a/benchmarks/recursiongfn/requirements.rocm.txt b/benchmarks/recursiongfn/requirements.rocm.txt new file mode 100644 index 000000000..1bc73f14e --- /dev/null +++ b/benchmarks/recursiongfn/requirements.rocm.txt @@ -0,0 +1,445 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=benchmarks/recursiongfn/requirements.rocm.txt .pin/tmp-constraints-rocm-recursiongfn_gnn.txt benchmarks/recursiongfn/requirements.in +# +--extra-index-url https://download.pytorch.org/whl/rocm6.0 + +absl-py==2.1.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # tensorboard +aiohappyeyeballs==2.4.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp +aiohttp==3.10.5 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch-geometric +aiosignal==1.3.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp +antlr4-python3-runtime==4.9.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # omegaconf +asttokens==2.4.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # giving +async-timeout==4.0.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp +attrs==24.2.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp +blosc2==2.7.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # tables +botorch==0.11.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet +certifi==2024.7.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # requests + # sentry-sdk +charset-normalizer==3.3.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # requests +click==8.1.7 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # wandb +codefind==0.1.6 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # ptera +cvxopt==1.3.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet +docker-pycreds==0.4.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # wandb +executing==1.2.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # varname +filelock==3.15.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # pytorch-triton-rocm + # torch +frozenlist==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp + # aiosignal +fsspec==2024.6.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch + # torch-geometric +gflownet @ git+https://github.com/Delaunay/gflownet@milabench + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/recursiongfn/requirements.in +gitdb==4.0.11 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gitpython +gitpython==3.1.43 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet + # wandb +giving==0.4.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # ptera + # voir +gpytorch==1.12 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # botorch + # gflownet +grpcio==1.65.5 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # tensorboard +idna==3.7 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # requests + # yarl +jaxtyping==0.2.33 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # linear-operator +jinja2==3.1.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch + # torch-geometric +joblib==1.4.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # scikit-learn +linear-operator==0.5.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # botorch + # gpytorch +markdown==3.7 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # tensorboard +markdown-it-py==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # rich +markupsafe==2.1.5 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # jinja2 + # werkzeug +mdurl==0.1.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # markdown-it-py +mpmath==1.3.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # botorch + # gpytorch + # sympy +msgpack==1.0.8 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # blosc2 +multidict==6.0.5 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp + # yarl +multipledispatch==1.0.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # botorch +ndindex==1.8 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # blosc2 +networkx==3.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet + # torch +numexpr==2.10.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # blosc2 + # tables +numpy==1.26.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # blosc2 + # botorch + # numexpr + # opt-einsum + # pandas + # pyarrow + # pyro-ppl + # rdkit + # scikit-learn + # scipy + # tables + # tensorboard + # torch-geometric +omegaconf==2.3.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet + # voir +opt-einsum==3.3.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # pyro-ppl +ovld==0.3.8 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # voir +packaging==24.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # tables + # tensorboard +pandas==2.2.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet +pillow==10.4.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # rdkit +platformdirs==4.2.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # wandb +protobuf==5.27.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # tensorboard + # wandb +psutil==5.9.8 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch-geometric + # voir + # wandb +ptera==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # voir +py-cpuinfo==9.0.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # blosc2 + # tables +pyarrow==17.0.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet +pygments==2.18.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # rich +pynvml==11.5.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # voir +pyparsing==3.1.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch-geometric +pyro-api==0.1.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # pyro-ppl +pyro-ppl==1.9.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # botorch + # gflownet +python-dateutil==2.9.0.post0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # pandas +pytorch-triton-rocm==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch +pytz==2024.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # pandas +pyyaml==6.0.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # omegaconf + # wandb +rdkit==2024.3.5 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet +reactivex==4.0.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # giving +requests==2.32.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch-geometric + # wandb +rich==13.7.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # voir +scikit-learn==1.5.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gpytorch + # torch-geometric +scipy==1.14.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # botorch + # gflownet + # gpytorch + # linear-operator + # scikit-learn + # torch-cluster + # torch-geometric + # torch-sparse +sentry-sdk==2.13.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # wandb +setproctitle==1.3.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # wandb +six==1.16.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # asttokens + # docker-pycreds + # python-dateutil + # tensorboard +smmap==5.0.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gitdb +sympy==1.13.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # torch +tables==3.10.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet +tensorboard==2.17.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet +tensorboard-data-server==0.7.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # tensorboard +threadpoolctl==3.5.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # scikit-learn +torch==2.4.0+rocm6.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -r benchmarks/recursiongfn/requirements.in + # botorch + # gflownet + # linear-operator + # pyro-ppl +torch-cluster==1.6.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet +torch-geometric==2.5.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet +torch-scatter==2.1.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet +torch-sparse==0.6.18 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet +tqdm==4.66.5 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # pyro-ppl + # torch-geometric +typeguard==2.13.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # jaxtyping + # linear-operator +typing-extensions==4.12.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # reactivex + # tables + # torch +tzdata==2024.1 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # pandas +urllib3==2.2.2 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # requests + # sentry-sdk +varname==0.10.0 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # giving +voir==0.2.17 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # -c .pin/../constraints/rocm.txt + # -r benchmarks/recursiongfn/requirements.in +wandb==0.17.7 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # gflownet +werkzeug==3.0.3 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # tensorboard +yarl==1.9.4 + # via + # -c .pin/../.pin/constraints-rocm-gnn.txt + # aiohttp + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/benchmarks/stargan/README.md b/benchmarks/retired/stargan/README.md similarity index 100% rename from benchmarks/stargan/README.md rename to benchmarks/retired/stargan/README.md diff --git a/benchmarks/stargan/benchfile.py b/benchmarks/retired/stargan/benchfile.py similarity index 100% rename from benchmarks/stargan/benchfile.py rename to benchmarks/retired/stargan/benchfile.py diff --git a/benchmarks/stargan/prepare.py b/benchmarks/retired/stargan/prepare.py similarity index 100% rename from benchmarks/stargan/prepare.py rename to benchmarks/retired/stargan/prepare.py diff --git a/benchmarks/stargan/requirements.cuda.txt b/benchmarks/retired/stargan/requirements.cuda.txt similarity index 100% rename from benchmarks/stargan/requirements.cuda.txt rename to benchmarks/retired/stargan/requirements.cuda.txt diff --git a/benchmarks/stargan/requirements.hpu.txt b/benchmarks/retired/stargan/requirements.hpu.txt similarity index 100% rename from benchmarks/stargan/requirements.hpu.txt rename to benchmarks/retired/stargan/requirements.hpu.txt diff --git a/benchmarks/stargan/requirements.in b/benchmarks/retired/stargan/requirements.in similarity index 100% rename from benchmarks/stargan/requirements.in rename to benchmarks/retired/stargan/requirements.in diff --git a/benchmarks/stargan/requirements.rocm.txt b/benchmarks/retired/stargan/requirements.rocm.txt similarity index 100% rename from benchmarks/stargan/requirements.rocm.txt rename to benchmarks/retired/stargan/requirements.rocm.txt diff --git a/benchmarks/stargan/requirements.xpu.txt b/benchmarks/retired/stargan/requirements.xpu.txt similarity index 100% rename from benchmarks/stargan/requirements.xpu.txt rename to benchmarks/retired/stargan/requirements.xpu.txt diff --git a/benchmarks/stargan/stargan/LICENSE b/benchmarks/retired/stargan/stargan/LICENSE similarity index 100% rename from benchmarks/stargan/stargan/LICENSE rename to benchmarks/retired/stargan/stargan/LICENSE diff --git a/benchmarks/stargan/stargan/ORIGIN.md b/benchmarks/retired/stargan/stargan/ORIGIN.md similarity index 100% rename from benchmarks/stargan/stargan/ORIGIN.md rename to benchmarks/retired/stargan/stargan/ORIGIN.md diff --git a/benchmarks/stargan/stargan/README.md b/benchmarks/retired/stargan/stargan/README.md similarity index 100% rename from benchmarks/stargan/stargan/README.md rename to benchmarks/retired/stargan/stargan/README.md diff --git a/benchmarks/stargan/stargan/data_loader.py b/benchmarks/retired/stargan/stargan/data_loader.py similarity index 100% rename from benchmarks/stargan/stargan/data_loader.py rename to benchmarks/retired/stargan/stargan/data_loader.py diff --git a/benchmarks/stargan/stargan/download.sh b/benchmarks/retired/stargan/stargan/download.sh similarity index 100% rename from benchmarks/stargan/stargan/download.sh rename to benchmarks/retired/stargan/stargan/download.sh diff --git a/benchmarks/stargan/stargan/logger.py b/benchmarks/retired/stargan/stargan/logger.py similarity index 100% rename from benchmarks/stargan/stargan/logger.py rename to benchmarks/retired/stargan/stargan/logger.py diff --git a/benchmarks/stargan/stargan/main.py b/benchmarks/retired/stargan/stargan/main.py similarity index 100% rename from benchmarks/stargan/stargan/main.py rename to benchmarks/retired/stargan/stargan/main.py diff --git a/benchmarks/stargan/stargan/model.py b/benchmarks/retired/stargan/stargan/model.py similarity index 100% rename from benchmarks/stargan/stargan/model.py rename to benchmarks/retired/stargan/stargan/model.py diff --git a/benchmarks/stargan/stargan/solver.py b/benchmarks/retired/stargan/stargan/solver.py similarity index 100% rename from benchmarks/stargan/stargan/solver.py rename to benchmarks/retired/stargan/stargan/solver.py diff --git a/benchmarks/stargan/stargan/synth.py b/benchmarks/retired/stargan/stargan/synth.py similarity index 100% rename from benchmarks/stargan/stargan/synth.py rename to benchmarks/retired/stargan/stargan/synth.py diff --git a/benchmarks/stargan/voirfile.py b/benchmarks/retired/stargan/voirfile.py similarity index 100% rename from benchmarks/stargan/voirfile.py rename to benchmarks/retired/stargan/voirfile.py diff --git a/benchmarks/rlhf/Makefile b/benchmarks/rlhf/Makefile deleted file mode 100644 index 97b871cdc..000000000 --- a/benchmarks/rlhf/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -# Use global base if possible -ifndef MILABENCH_BASE - MILABENCH_BASE="base" -endif - -export MILABENCH_BASE - -BENCH_NAME=rlhf -MILABENCH_CONFIG=dev.yaml -MILABENCH_ARGS=--config $(MILABENCH_CONFIG) --base $(MILABENCH_BASE) - -all: - install prepare single gpus nodes - -install: - milabench install $(MILABENCH_ARGS) --force - -prepare: - milabench prepare $(MILABENCH_ARGS) - -tests: - CUDA_VISIBLE_DEVICES=0 milabench run $(MILABENCH_ARGS) - -single: - milabench run $(MILABENCH_ARGS) --select $(BENCH_NAME) - -gpus: - milabench run $(MILABENCH_ARGS) --select $(BENCH_NAME)-gpus - -nodes: - milabench run $(MILABENCH_ARGS) --select $(BENCH_NAME)-nodes diff --git a/benchmarks/rlhf/README.md b/benchmarks/rlhf/README.md deleted file mode 100644 index 9c22d45ca..000000000 --- a/benchmarks/rlhf/README.md +++ /dev/null @@ -1,4 +0,0 @@ - -# Rlhf - -Rewrite this README to explain what the benchmark is! diff --git a/benchmarks/rlhf/dev.yaml b/benchmarks/rlhf/dev.yaml deleted file mode 100644 index 99ab9b21e..000000000 --- a/benchmarks/rlhf/dev.yaml +++ /dev/null @@ -1,53 +0,0 @@ - -rlhf: - inherits: _defaults - definition: . - install-variant: unpinned - install_group: torch - plan: - method: per_gpu - - argv: - --output_dir: models/minimal/ppo - --per_device_train_batch_size: 1 - --gradient_accumulation_steps: 1 - --total_episodes: 30000 - --model_name_or_path: meta-llama/Llama-2-7b-chat-hf - --sft_model_path: meta-llama/Llama-2-7b-chat-hf - --reward_model_path: cleanrl/EleutherAI_pythia-1b-deduped__reward__tldr - --non_eos_penalty: true - --stop_token: eos - --response_length: 53 - --sanity_check: true - - - -# """ -# python examples/scripts/ppo/ppo_tldr.py \ -# --learning_rate 3e-6 \ -# --output_dir models/minimal/ppo \ -# --per_device_train_batch_size 1 \ -# --gradient_accumulation_steps 64 \ -# --total_episodes 30000 \ -# --model_name_or_path EleutherAI/pythia-1b-deduped \ -# --sft_model_path cleanrl/EleutherAI_pythia-1b-deduped__sft__tldr \ -# --reward_model_path cleanrl/EleutherAI_pythia-1b-deduped__reward__tldr \ -# --non_eos_penalty \ -# --stop_token eos \ -# --response_length 53 \ -# --sanity_check - -# accelerate launch --config_file examples/accelerate_configs/deepspeed_zero2.yaml \ -# examples/scripts/ppo/ppo_tldr.py \ -# --output_dir models/minimal/ppo_tldr \ -# --learning_rate 3e-6 \ -# --per_device_train_batch_size 16 \ -# --gradient_accumulation_steps 4 \ -# --total_episodes 1000000 \ -# --model_name_or_path EleutherAI/pythia-1b-deduped \ -# --sft_model_path cleanrl/EleutherAI_pythia-1b-deduped__sft__tldr \ -# --reward_model_path cleanrl/EleutherAI_pythia-1b-deduped__reward__tldr \ -# --local_rollout_forward_batch_size 16 \ -# --non_eos_penalty \ -# --stop_token eos -# """ \ No newline at end of file diff --git a/benchmarks/rlhf/main.py b/benchmarks/rlhf/main.py deleted file mode 100644 index 7ab48e1d7..000000000 --- a/benchmarks/rlhf/main.py +++ /dev/null @@ -1,126 +0,0 @@ -import multiprocessing -import shutil - -from datasets import load_dataset -from transformers import ( - AutoModelForCausalLM, - AutoModelForSequenceClassification, - AutoTokenizer, - HfArgumentParser, -) - -from trl import ModelConfig -from trl.trainer.ppov2_trainer import PPOv2Config, PPOv2Trainer -from trl.trainer.utils import SIMPLE_QUERY_CHAT_TEMPLATE - - -def main(): - parser = HfArgumentParser((PPOv2Config, ModelConfig)) - config, model_config = parser.parse_args_into_dataclasses() - # remove output_dir if exists - shutil.rmtree(config.output_dir, ignore_errors=True) - - ################ - # Model & Tokenizer - ################ - tokenizer = AutoTokenizer.from_pretrained( - model_config.model_name_or_path, - padding_side="left", - trust_remote_code=model_config.trust_remote_code, - ) - tokenizer.add_special_tokens({"pad_token": "[PAD]"}) - - if tokenizer.chat_template is None: - tokenizer.chat_template = SIMPLE_QUERY_CHAT_TEMPLATE - value_model = AutoModelForSequenceClassification.from_pretrained( - config.reward_model_path, trust_remote_code=model_config.trust_remote_code, num_labels=1 - ) - reward_model = AutoModelForSequenceClassification.from_pretrained( - config.reward_model_path, trust_remote_code=model_config.trust_remote_code, num_labels=1 - ) - import torch - ref_policy = AutoModelForCausalLM.from_pretrained( - config.sft_model_path, - trust_remote_code=model_config.trust_remote_code, - low_cpu_mem_usage=True, - ) - policy = AutoModelForCausalLM.from_pretrained( - config.sft_model_path, - trust_remote_code=model_config.trust_remote_code, - low_cpu_mem_usage=True, - ) - - from peft import prepare_model_for_kbit_training - from peft import LoraConfig - from peft import get_peft_model - - ref_policy = prepare_model_for_kbit_training(ref_policy) - policy = prepare_model_for_kbit_training(policy) - - lora_config = LoraConfig( - r=16, - lora_alpha=32, - lora_dropout=0.05, - bias="none", - task_type="CAUSAL_LM", - ) - ref_policy = get_peft_model(ref_policy, lora_config) - policy = get_peft_model(policy, lora_config) - - ################ - # Dataset - ################ - raw_datasets = load_dataset("trl-internal-testing/tldr-preference-sft-trl-style") - if config.sanity_check: - for key in raw_datasets: - raw_datasets[key] = raw_datasets[key].select(range(1000)) - train_dataset = raw_datasets["train"] - eval_dataset = raw_datasets["validation"] - - def prepare_dataset(dataset, tokenizer): - """pre-tokenize the dataset before training; only collate during training""" - - def tokenize(element): - input_ids = tokenizer.apply_chat_template( - element["messages"][:1], - padding=False, - add_generation_prompt=True, - ) - return {"input_ids": input_ids, "lengths": len(input_ids)} - - return dataset.map( - tokenize, - remove_columns=dataset.column_names, - num_proc=1 if config.sanity_check else multiprocessing.cpu_count(), - load_from_cache_file=not config.sanity_check, - ) - - train_dataset = prepare_dataset(train_dataset, tokenizer) - eval_dataset = prepare_dataset(eval_dataset, tokenizer) - # filtering - train_dataset = train_dataset.filter(lambda x: x["lengths"] <= 512) - eval_dataset = eval_dataset.filter(lambda x: x["lengths"] <= 512) - - assert train_dataset[0]["input_ids"][-1] != tokenizer.eos_token_id, "The last token should not be an EOS token" - ################ - # Training - ################ - print("DONE") - trainer = PPOv2Trainer( - config=config, - tokenizer=tokenizer, - policy=policy, - ref_policy=ref_policy, - reward_model=reward_model, - value_model=value_model, - train_dataset=train_dataset, - eval_dataset=eval_dataset, - ) - trainer.train() - - # trainer.save_model(config.output_dir) - # trainer.generate_completions() - - -if __name__ == "__main__": - main() diff --git a/benchmarks/rlhf/requirements.in b/benchmarks/rlhf/requirements.in deleted file mode 100644 index d0faef03e..000000000 --- a/benchmarks/rlhf/requirements.in +++ /dev/null @@ -1,5 +0,0 @@ -voir>=0.2.17,<0.3 -torch -trl -bitsandbytes -peft \ No newline at end of file diff --git a/benchmarks/rlhf/voirfile.py b/benchmarks/rlhf/voirfile.py deleted file mode 100644 index d93f886cd..000000000 --- a/benchmarks/rlhf/voirfile.py +++ /dev/null @@ -1,38 +0,0 @@ -from dataclasses import dataclass - -from voir import configurable -from voir.instruments import dash, early_stop, log, rate -from benchmate.monitor import monitor_monogpu - -@dataclass -class Config: - """voir configuration""" - - # Whether to display the dash or not - dash: bool = False - - # How often to log the rates - interval: str = "1s" - - # Number of rates to skip before logging - skip: int = 5 - - # Number of rates to log before stopping - stop: int = 20 - - # Number of seconds between each gpu poll - gpu_poll: int = 3 - - -@configurable -def instrument_main(ov, options: Config): - yield ov.phases.init - - if options.dash: - ov.require(dash) - - ov.require( - log("value", "progress", "rate", "units", "loss", "gpudata", context="task"), - early_stop(n=options.stop, key="rate", task="train"), - monitor_monogpu(poll_interval=options.gpu_poll), - ) diff --git a/benchmarks/super-slomo/requirements.cuda.txt b/benchmarks/super-slomo/requirements.cuda.txt index 3badf8184..35898b1b4 100644 --- a/benchmarks/super-slomo/requirements.cuda.txt +++ b/benchmarks/super-slomo/requirements.cuda.txt @@ -4,10 +4,7 @@ # # pip-compile --output-file=benchmarks/super-slomo/requirements.cuda.txt .pin/tmp-constraints-cuda-super-slomo.txt benchmarks/super-slomo/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com antlr4-python3-runtime==4.9.3 # via @@ -30,7 +27,7 @@ filelock==3.15.4 # -c .pin/../.pin/constraints-cuda-torch.txt # torch # triton -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -129,7 +126,7 @@ opencv-python==4.10.0.84 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/super-slomo/requirements.in -ovld==0.3.6 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir @@ -153,7 +150,7 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # omegaconf @@ -169,7 +166,7 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # asttokens -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -182,7 +179,7 @@ torchvision==0.19.0+cu121 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/super-slomo/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/super-slomo/requirements.in diff --git a/benchmarks/super-slomo/requirements.rocm.txt b/benchmarks/super-slomo/requirements.rocm.txt index ccedc92ed..9e6c7e52d 100644 --- a/benchmarks/super-slomo/requirements.rocm.txt +++ b/benchmarks/super-slomo/requirements.rocm.txt @@ -5,7 +5,6 @@ # pip-compile --output-file=benchmarks/super-slomo/requirements.rocm.txt .pin/tmp-constraints-rocm-super-slomo.txt benchmarks/super-slomo/requirements.in # --extra-index-url https://download.pytorch.org/whl/rocm6.0 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html antlr4-python3-runtime==4.9.3 # via @@ -28,7 +27,7 @@ filelock==3.15.4 # -c .pin/../.pin/constraints-rocm-torch.txt # pytorch-triton-rocm # torch -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch @@ -119,7 +118,7 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # asttokens -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch diff --git a/benchmarks/timm/benchfile.py b/benchmarks/timm/benchfile.py index 52a31ba1d..df36de07e 100644 --- a/benchmarks/timm/benchfile.py +++ b/benchmarks/timm/benchfile.py @@ -30,9 +30,6 @@ async def install(self): "https://github.com/huggingface/pytorch-image-models", BRANCH ) - # Install TIMM first - # await self.pip_install("-e", str(timm)) - # install the rest, which might override what TIMM specified await super().install() diff --git a/benchmarks/timm/requirements.cuda.txt b/benchmarks/timm/requirements.cuda.txt index 163ab0bc0..2117533df 100644 --- a/benchmarks/timm/requirements.cuda.txt +++ b/benchmarks/timm/requirements.cuda.txt @@ -4,10 +4,7 @@ # # pip-compile --output-file=benchmarks/timm/requirements.cuda.txt .pin/tmp-constraints-cuda-timm.txt benchmarks/timm/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com antlr4-python3-runtime==4.9.3 # via @@ -39,7 +36,7 @@ filelock==3.15.4 # huggingface-hub # torch # triton -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # huggingface-hub @@ -49,7 +46,7 @@ giving==0.4.2 # -c .pin/../.pin/constraints-cuda-torch.txt # ptera # voir -huggingface-hub==0.24.5 +huggingface-hub==0.24.6 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/timm/requirements.in @@ -141,7 +138,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -ovld==0.3.6 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir @@ -169,7 +166,7 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/timm/requirements.in @@ -187,7 +184,7 @@ rich==13.7.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -safetensors==0.4.3 +safetensors==0.4.4 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/timm/requirements.in @@ -195,7 +192,7 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # asttokens -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -208,7 +205,7 @@ torchvision==0.19.0+cu121 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/timm/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # huggingface-hub diff --git a/benchmarks/timm/requirements.rocm.txt b/benchmarks/timm/requirements.rocm.txt index 996a684ee..5ca7e3962 100644 --- a/benchmarks/timm/requirements.rocm.txt +++ b/benchmarks/timm/requirements.rocm.txt @@ -4,10 +4,7 @@ # # pip-compile --output-file=benchmarks/timm/requirements.rocm.txt .pin/tmp-constraints-rocm-timm.txt benchmarks/timm/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/rocm6.0 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com antlr4-python3-runtime==4.9.3 # via @@ -17,7 +14,7 @@ asttokens==2.4.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # giving -certifi==2024.6.2 +certifi==2024.7.4 # via # -c .pin/../.pin/constraints-rocm-torch.txt # requests @@ -39,7 +36,7 @@ filelock==3.15.4 # huggingface-hub # pytorch-triton-rocm # torch -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # huggingface-hub @@ -49,7 +46,7 @@ giving==0.4.2 # -c .pin/../.pin/constraints-rocm-torch.txt # ptera # voir -huggingface-hub==0.23.5 +huggingface-hub==0.24.6 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/timm/requirements.in @@ -89,7 +86,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -ovld==0.3.5 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir @@ -117,11 +114,11 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -pytorch-triton-rocm==2.3.1 +pytorch-triton-rocm==3.0.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/timm/requirements.in @@ -139,7 +136,7 @@ rich==13.7.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -safetensors==0.4.3 +safetensors==0.4.4 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/timm/requirements.in @@ -147,20 +144,20 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # asttokens -sympy==1.13.0 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch -torch==2.3.1+rocm6.0 +torch==2.4.0+rocm6.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/timm/requirements.in # torchvision -torchvision==0.18.1+rocm6.0 +torchvision==0.19.0+rocm6.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/timm/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-rocm-torch.txt # huggingface-hub @@ -170,7 +167,7 @@ typing-extensions==4.12.2 # huggingface-hub # reactivex # torch -urllib3==1.26.19 +urllib3==2.2.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # requests diff --git a/benchmarks/torch_ppo_atari_envpool/benchfile.py b/benchmarks/torch_ppo_atari_envpool/benchfile.py deleted file mode 100644 index 5625f7ed9..000000000 --- a/benchmarks/torch_ppo_atari_envpool/benchfile.py +++ /dev/null @@ -1,31 +0,0 @@ -from milabench.pack import Package - - -class Torch_ppo_atari_envpool(Package): - # Requirements file installed by install(). It can be empty or absent. - base_requirements = "requirements.in" - - # The preparation script called by prepare(). It must be executable, - # but it can be any type of script. It can be empty or absent. - prepare_script = "prepare.py" - - # The main script called by run(). It must be a Python file. It has to - # be present. - main_script = "main.py" - - # You can remove the functions below if you don't need to modify them. - - def make_env(self): - # Return a dict of environment variables for prepare_script and - # main_script. - return super().make_env() - - async def install(self): - await super().install() # super() call installs the requirements - - async def prepare(self): - await super().prepare() # super() call executes prepare_script - - - -__pack__ = Torch_ppo_atari_envpool diff --git a/benchmarks/torch_ppo_atari_envpool/prepare.py b/benchmarks/torch_ppo_atari_envpool/prepare.py deleted file mode 100755 index 32bd5901d..000000000 --- a/benchmarks/torch_ppo_atari_envpool/prepare.py +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env python - -import os - -if __name__ == "__main__": - # If you need the whole configuration: - # config = json.loads(os.environ["MILABENCH_CONFIG"]) - - data_directory = os.environ["MILABENCH_DIR_DATA"] - - # Download (or generate) the needed dataset(s). You are responsible - # to check if it has already been properly downloaded or not, and to - # do nothing if it has been. - print("Hello I am doing some data stuff!") - - # If there is nothing to download or generate, just delete this file. diff --git a/benchmarks/torch_ppo_atari_envpool/Makefile b/benchmarks/torchatari/Makefile similarity index 94% rename from benchmarks/torch_ppo_atari_envpool/Makefile rename to benchmarks/torchatari/Makefile index 81443ce2b..9eb0a30c5 100644 --- a/benchmarks/torch_ppo_atari_envpool/Makefile +++ b/benchmarks/torchatari/Makefile @@ -5,7 +5,7 @@ endif export MILABENCH_BASE -BENCH_NAME=torch_ppo_atari_envpool +BENCH_NAME=torchatari MILABENCH_CONFIG=dev.yaml MILABENCH_ARGS=--config $(MILABENCH_CONFIG) --base $(MILABENCH_BASE) diff --git a/benchmarks/torch_ppo_atari_envpool/README.md b/benchmarks/torchatari/README.md similarity index 100% rename from benchmarks/torch_ppo_atari_envpool/README.md rename to benchmarks/torchatari/README.md diff --git a/benchmarks/rlhf/benchfile.py b/benchmarks/torchatari/benchfile.py similarity index 94% rename from benchmarks/rlhf/benchfile.py rename to benchmarks/torchatari/benchfile.py index a568f6690..1bf4ee785 100644 --- a/benchmarks/rlhf/benchfile.py +++ b/benchmarks/torchatari/benchfile.py @@ -1,7 +1,7 @@ from milabench.pack import Package -class Rlhf(Package): +class Torchatari(Package): # Requirements file installed by install(). It can be empty or absent. base_requirements = "requirements.in" @@ -28,4 +28,4 @@ async def prepare(self): -__pack__ = Rlhf +__pack__ = Torchatari diff --git a/benchmarks/torch_ppo_atari_envpool/dev.yaml b/benchmarks/torchatari/dev.yaml similarity index 92% rename from benchmarks/torch_ppo_atari_envpool/dev.yaml rename to benchmarks/torchatari/dev.yaml index 338bed075..d0df0df1a 100644 --- a/benchmarks/torch_ppo_atari_envpool/dev.yaml +++ b/benchmarks/torchatari/dev.yaml @@ -1,5 +1,5 @@ -torch_ppo_atari_envpool: +torchatari: max_duration: 600 inherits: _defaults definition: . diff --git a/benchmarks/torch_ppo_atari_envpool/main.py b/benchmarks/torchatari/main.py similarity index 100% rename from benchmarks/torch_ppo_atari_envpool/main.py rename to benchmarks/torchatari/main.py diff --git a/benchmarks/rlhf/prepare.py b/benchmarks/torchatari/prepare.py similarity index 100% rename from benchmarks/rlhf/prepare.py rename to benchmarks/torchatari/prepare.py diff --git a/benchmarks/torchatari/requirements.cuda.txt b/benchmarks/torchatari/requirements.cuda.txt new file mode 100644 index 000000000..c0ece04fe --- /dev/null +++ b/benchmarks/torchatari/requirements.cuda.txt @@ -0,0 +1,305 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=benchmarks/torchatari/requirements.cuda.txt .pin/tmp-constraints-cuda-torchatari.txt benchmarks/torchatari/requirements.in +# +--extra-index-url https://download.pytorch.org/whl/cu121 + +absl-py==2.1.0 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # dm-env + # tensorboard +antlr4-python3-runtime==4.9.3 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # omegaconf +appdirs==1.4.4 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # cantilever +asttokens==2.4.1 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # giving +cantilever==0.1.0 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # -r benchmarks/torchatari/requirements.in +cloudpickle==3.0.0 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # gym + # gymnasium +codefind==0.1.6 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # ptera +dm-env==1.6 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # envpool +dm-tree==0.1.8 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # dm-env +docstring-parser==0.16 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # tyro +envpool==0.8.4 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # -r benchmarks/torchatari/requirements.in +executing==1.2.0 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # varname +farama-notifications==0.0.4 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # gymnasium +filelock==3.15.4 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch + # triton +fsspec==2024.6.1 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +giving==0.4.2 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # ptera + # voir +grpcio==1.65.5 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # tensorboard +gym==0.23.1 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # -r benchmarks/torchatari/requirements.in + # envpool +gym-notices==0.0.8 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # gym +gymnasium==0.29.1 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # envpool +importlib-resources==6.4.3 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # cantilever + # torchcompat +jinja2==3.1.4 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +markdown==3.7 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # tensorboard +markdown-it-py==3.0.0 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # rich +markupsafe==2.1.5 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # jinja2 + # werkzeug +mdurl==0.1.2 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # markdown-it-py +mpmath==1.3.0 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # sympy +networkx==3.3 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +numpy==1.26.4 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # -r benchmarks/torchatari/requirements.in + # dm-env + # envpool + # gym + # gymnasium + # tensorboard +nvidia-cublas-cu12==12.1.3.1 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # nvidia-cudnn-cu12 + # nvidia-cusolver-cu12 + # torch +nvidia-cuda-cupti-cu12==12.1.105 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +nvidia-cuda-nvrtc-cu12==12.1.105 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +nvidia-cuda-runtime-cu12==12.1.105 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +nvidia-cudnn-cu12==9.1.0.70 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +nvidia-cufft-cu12==11.0.2.54 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +nvidia-curand-cu12==10.3.2.106 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +nvidia-cusolver-cu12==11.4.5.107 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +nvidia-cusparse-cu12==12.1.0.106 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # nvidia-cusolver-cu12 + # torch +nvidia-nccl-cu12==2.20.5 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +nvidia-nvjitlink-cu12==12.6.20 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # nvidia-cusolver-cu12 + # nvidia-cusparse-cu12 +nvidia-nvtx-cu12==12.1.105 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +omegaconf==2.3.0 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # voir +optree==0.12.1 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # envpool +ovld==0.3.8 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # voir +packaging==24.1 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # envpool + # tensorboard +protobuf==5.27.3 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # tensorboard +psutil==5.9.8 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # voir +ptera==1.4.1 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # voir +pygments==2.18.0 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # rich +pynvml==11.5.3 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # voir +pyyaml==6.0.2 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # omegaconf +reactivex==4.0.4 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # giving +rich==13.7.1 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # tyro + # voir +shtab==1.7.1 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # tyro +six==1.16.0 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # asttokens + # tensorboard +sympy==1.13.2 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +tensorboard==2.17.1 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # -r benchmarks/torchatari/requirements.in +tensorboard-data-server==0.7.2 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # tensorboard +torch==2.4.0+cu121 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # -r benchmarks/torchatari/requirements.in +torchcompat==1.1.4 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # -c .pin/../constraints/cuda.txt + # -r benchmarks/torchatari/requirements.in +triton==3.0.0 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # torch +types-protobuf==5.27.0.20240626 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # envpool +typing-extensions==4.12.2 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # envpool + # gymnasium + # optree + # reactivex + # torch + # tyro +tyro==0.8.8 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # -r benchmarks/torchatari/requirements.in +varname==0.10.0 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # giving +voir==0.2.17 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # -c .pin/../constraints/cuda.txt + # -r benchmarks/torchatari/requirements.in +werkzeug==3.0.3 + # via + # -c .pin/../.pin/constraints-cuda-torch.txt + # tensorboard + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/benchmarks/torch_ppo_atari_envpool/requirements.in b/benchmarks/torchatari/requirements.in similarity index 100% rename from benchmarks/torch_ppo_atari_envpool/requirements.in rename to benchmarks/torchatari/requirements.in diff --git a/benchmarks/torchatari/requirements.rocm.txt b/benchmarks/torchatari/requirements.rocm.txt new file mode 100644 index 000000000..71fd92e51 --- /dev/null +++ b/benchmarks/torchatari/requirements.rocm.txt @@ -0,0 +1,253 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --output-file=benchmarks/torchatari/requirements.rocm.txt .pin/tmp-constraints-rocm-torchatari.txt benchmarks/torchatari/requirements.in +# +--extra-index-url https://download.pytorch.org/whl/rocm6.0 + +absl-py==2.1.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # dm-env + # tensorboard +antlr4-python3-runtime==4.9.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # omegaconf +appdirs==1.4.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # cantilever +asttokens==2.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +cantilever==0.1.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/torchatari/requirements.in +cloudpickle==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # gym + # gymnasium +codefind==0.1.6 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ptera +dm-env==1.6 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # envpool +dm-tree==0.1.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # dm-env +docstring-parser==0.16 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # tyro +envpool==0.8.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/torchatari/requirements.in +executing==1.2.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # varname +farama-notifications==0.0.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # gymnasium +filelock==3.15.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # pytorch-triton-rocm + # torch +fsspec==2024.6.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +giving==0.4.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # ptera + # voir +grpcio==1.65.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # tensorboard +gym==0.23.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/torchatari/requirements.in + # envpool +gym-notices==0.0.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # gym +gymnasium==0.29.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # envpool +importlib-resources==6.4.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # cantilever + # torchcompat +jinja2==3.1.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +markdown==3.7 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # tensorboard +markdown-it-py==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # rich +markupsafe==2.1.5 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # jinja2 + # werkzeug +mdurl==0.1.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # markdown-it-py +mpmath==1.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # sympy +networkx==3.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +numpy==1.26.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/torchatari/requirements.in + # dm-env + # envpool + # gym + # gymnasium + # tensorboard +omegaconf==2.3.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +optree==0.12.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # envpool +ovld==0.3.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +packaging==24.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # envpool + # tensorboard +protobuf==5.27.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # tensorboard +psutil==5.9.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +ptera==1.4.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +pygments==2.18.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # rich +pynvml==11.5.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # voir +pytorch-triton-rocm==3.0.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +pyyaml==6.0.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # omegaconf +reactivex==4.0.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +rich==13.7.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # tyro + # voir +shtab==1.7.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # tyro +six==1.16.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # asttokens + # tensorboard +sympy==1.13.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # torch +tensorboard==2.17.1 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/torchatari/requirements.in +tensorboard-data-server==0.7.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # tensorboard +torch==2.4.0+rocm6.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/torchatari/requirements.in +torchcompat==1.1.4 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -c .pin/../constraints/rocm.txt + # -r benchmarks/torchatari/requirements.in +types-protobuf==5.27.0.20240626 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # envpool +typing-extensions==4.12.2 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # envpool + # gymnasium + # optree + # reactivex + # torch + # tyro +tyro==0.8.8 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -r benchmarks/torchatari/requirements.in +varname==0.10.0 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # giving +voir==0.2.17 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # -c .pin/../constraints/rocm.txt + # -r benchmarks/torchatari/requirements.in +werkzeug==3.0.3 + # via + # -c .pin/../.pin/constraints-rocm-torch.txt + # tensorboard + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/benchmarks/torch_ppo_atari_envpool/voirfile.py b/benchmarks/torchatari/voirfile.py similarity index 100% rename from benchmarks/torch_ppo_atari_envpool/voirfile.py rename to benchmarks/torchatari/voirfile.py diff --git a/benchmarks/torchvision/requirements.cuda.txt b/benchmarks/torchvision/requirements.cuda.txt index 3b545f36c..d2bd6621e 100644 --- a/benchmarks/torchvision/requirements.cuda.txt +++ b/benchmarks/torchvision/requirements.cuda.txt @@ -4,10 +4,7 @@ # # pip-compile --output-file=benchmarks/torchvision/requirements.cuda.txt .pin/tmp-constraints-cuda-torchvision.txt benchmarks/torchvision/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com antlr4-python3-runtime==4.9.3 # via @@ -30,7 +27,7 @@ filelock==3.15.4 # -c .pin/../.pin/constraints-cuda-torch.txt # torch # triton -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -39,7 +36,7 @@ giving==0.4.2 # -c .pin/../.pin/constraints-cuda-torch.txt # ptera # voir -importlib-resources==6.4.0 +importlib-resources==6.4.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torchcompat @@ -127,7 +124,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -ovld==0.3.6 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir @@ -151,7 +148,7 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # omegaconf @@ -167,7 +164,7 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # asttokens -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -185,7 +182,7 @@ torchvision==0.19.0+cu121 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/torchvision/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/torchvision/requirements.in diff --git a/benchmarks/torchvision/requirements.rocm.txt b/benchmarks/torchvision/requirements.rocm.txt index 949948e40..c9397e571 100644 --- a/benchmarks/torchvision/requirements.rocm.txt +++ b/benchmarks/torchvision/requirements.rocm.txt @@ -4,10 +4,7 @@ # # pip-compile --output-file=benchmarks/torchvision/requirements.rocm.txt .pin/tmp-constraints-rocm-torchvision.txt benchmarks/torchvision/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/rocm6.0 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com antlr4-python3-runtime==4.9.3 # via @@ -30,7 +27,7 @@ filelock==3.15.4 # -c .pin/../.pin/constraints-rocm-torch.txt # pytorch-triton-rocm # torch -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch @@ -39,7 +36,7 @@ giving==0.4.2 # -c .pin/../.pin/constraints-rocm-torch.txt # ptera # voir -importlib-resources==6.4.0 +importlib-resources==6.4.3 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torchcompat @@ -75,7 +72,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -ovld==0.3.5 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir @@ -99,11 +96,11 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -pytorch-triton-rocm==2.3.1 +pytorch-triton-rocm==3.0.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # omegaconf @@ -119,11 +116,11 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # asttokens -sympy==1.13.0 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch -torch==2.3.1+rocm6.0 +torch==2.4.0+rocm6.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/torchvision/requirements.in @@ -133,11 +130,11 @@ torchcompat==1.1.4 # -c .pin/../.pin/constraints-rocm-torch.txt # -c .pin/../constraints/rocm.txt # -r benchmarks/torchvision/requirements.in -torchvision==0.18.1+rocm6.0 +torchvision==0.19.0+rocm6.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/torchvision/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/torchvision/requirements.in diff --git a/benchmarks/torchvision_ddp/requirements.cuda.txt b/benchmarks/torchvision_ddp/requirements.cuda.txt index 2c2fe161d..d651a6cbc 100644 --- a/benchmarks/torchvision_ddp/requirements.cuda.txt +++ b/benchmarks/torchvision_ddp/requirements.cuda.txt @@ -4,10 +4,7 @@ # # pip-compile --output-file=benchmarks/torchvision_ddp/requirements.cuda.txt .pin/tmp-constraints-cuda-torchvision.txt benchmarks/torchvision_ddp/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/cu121 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com antlr4-python3-runtime==4.9.3 # via @@ -30,7 +27,7 @@ filelock==3.15.4 # -c .pin/../.pin/constraints-cuda-torch.txt # torch # triton -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -39,7 +36,7 @@ giving==0.4.2 # -c .pin/../.pin/constraints-cuda-torch.txt # ptera # voir -importlib-resources==6.4.0 +importlib-resources==6.4.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torchcompat @@ -127,7 +124,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -ovld==0.3.6 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir @@ -151,7 +148,7 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-cuda-torch.txt # voir -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # omegaconf @@ -167,7 +164,7 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-cuda-torch.txt # asttokens -sympy==1.13.1 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-cuda-torch.txt # torch @@ -185,7 +182,7 @@ torchvision==0.19.0+cu121 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/torchvision_ddp/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-cuda-torch.txt # -r benchmarks/torchvision_ddp/requirements.in diff --git a/benchmarks/torchvision_ddp/requirements.rocm.txt b/benchmarks/torchvision_ddp/requirements.rocm.txt index 790298ffb..c8bb4e0b0 100644 --- a/benchmarks/torchvision_ddp/requirements.rocm.txt +++ b/benchmarks/torchvision_ddp/requirements.rocm.txt @@ -4,10 +4,7 @@ # # pip-compile --output-file=benchmarks/torchvision_ddp/requirements.rocm.txt .pin/tmp-constraints-rocm-torchvision.txt benchmarks/torchvision_ddp/requirements.in # ---extra-index-url https://pypi.ngc.nvidia.com --extra-index-url https://download.pytorch.org/whl/rocm6.0 ---find-links https://storage.googleapis.com/jax-releases/jax_cuda_releases.html ---trusted-host pypi.ngc.nvidia.com antlr4-python3-runtime==4.9.3 # via @@ -30,7 +27,7 @@ filelock==3.15.4 # -c .pin/../.pin/constraints-rocm-torch.txt # pytorch-triton-rocm # torch -fsspec==2024.5.0 +fsspec==2024.6.1 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch @@ -39,7 +36,7 @@ giving==0.4.2 # -c .pin/../.pin/constraints-rocm-torch.txt # ptera # voir -importlib-resources==6.4.0 +importlib-resources==6.4.3 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torchcompat @@ -75,7 +72,7 @@ omegaconf==2.3.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -ovld==0.3.5 +ovld==0.3.8 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir @@ -99,11 +96,11 @@ pynvml==11.5.3 # via # -c .pin/../.pin/constraints-rocm-torch.txt # voir -pytorch-triton-rocm==2.3.1 +pytorch-triton-rocm==3.0.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch -pyyaml==6.0.1 +pyyaml==6.0.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # omegaconf @@ -119,11 +116,11 @@ six==1.16.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # asttokens -sympy==1.13.0 +sympy==1.13.2 # via # -c .pin/../.pin/constraints-rocm-torch.txt # torch -torch==2.3.1+rocm6.0 +torch==2.4.0+rocm6.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/torchvision_ddp/requirements.in @@ -133,11 +130,11 @@ torchcompat==1.1.4 # -c .pin/../.pin/constraints-rocm-torch.txt # -c .pin/../constraints/rocm.txt # -r benchmarks/torchvision_ddp/requirements.in -torchvision==0.18.1+rocm6.0 +torchvision==0.19.0+rocm6.0 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/torchvision_ddp/requirements.in -tqdm==4.66.4 +tqdm==4.66.5 # via # -c .pin/../.pin/constraints-rocm-torch.txt # -r benchmarks/torchvision_ddp/requirements.in diff --git a/config/base.yaml b/config/base.yaml index f5d5920d0..3d02f33e6 100644 --- a/config/base.yaml +++ b/config/base.yaml @@ -106,7 +106,7 @@ _timm: argv: --amp: true --amp-dtype: bfloat16 - --device: '{arch}' + --device: '{device_name}' --val-split: '' --data-dir: "{milabench_data}" --dataset: "FakeImageNet" @@ -648,3 +648,52 @@ llm-full-mp-nodes: - "len(nodes) >= ${num_machines}" +_geo_gnn: + inherits: _defaults + definition: . + # FIXME: torch cluster is laging behind pytorch + # we are forced to use torch==2.3 instead of torch==2.4 + install_group: gnn + group: geo_gnn + definition: ../benchmarks/geo_gnn + plan: + method: per_gpu + +dimenet: + inherits: _geo_gnn + argv: + --model: 'DimeNet' + --num-samples: 10000 + --use3d: True + + +recursiongfn: + inherits: _defaults + definition: ../benchmarks/recursiongfn + install_group: gnn + group: recursiongfn_gnn + plan: + method: per_gpu + + argv: + --batch_size: 128 + --num_workers: 8 + --num_steps: 100 + --layer_width: 128 + --num_layers: 4 + + +torchatari: + inherits: _defaults + definition: ../benchmarks/torchatari + install_group: torch + plan: + method: per_gpu + + argv: + --num-minibatches: 16 + --update-epochs: 4 + --num-steps: 128 + --num-envs: auto({cpu_per_gpu}, 128) + --total-timesteps: 1000000 + --env-id: Breakout-v5 diff --git a/constraints/extra/gnn.cuda.txt b/constraints/extra/gnn.cuda.txt new file mode 100644 index 000000000..e5decec56 --- /dev/null +++ b/constraints/extra/gnn.cuda.txt @@ -0,0 +1,4 @@ +--find-links https://data.pyg.org/whl/torch-2.3.0+cu121.html + +torch>=2.3.0,<2.4.0 + diff --git a/constraints/extra/gnn.hpu.txt b/constraints/extra/gnn.hpu.txt new file mode 100644 index 000000000..e69de29bb diff --git a/constraints/extra/gnn.rocm.txt b/constraints/extra/gnn.rocm.txt new file mode 100644 index 000000000..e69de29bb diff --git a/constraints/extra/gnn.xpu.txt b/constraints/extra/gnn.xpu.txt new file mode 100644 index 000000000..e69de29bb diff --git a/constraints/extra/torch.rocm.txt b/constraints/extra/torch.rocm.txt index 493c77672..870d923a2 100644 --- a/constraints/extra/torch.rocm.txt +++ b/constraints/extra/torch.rocm.txt @@ -1 +1 @@ -# No jax \ No newline at end of file +# No jax only a container for it diff --git a/milabench/_version.py b/milabench/_version.py index ceafcb294..cc019cf95 100644 --- a/milabench/_version.py +++ b/milabench/_version.py @@ -1,5 +1,5 @@ """This file is generated, do not modify""" -__tag__ = "c7ae304" -__commit__ = "c7ae3043a12faef4da3eb0ddd6dc33e355b265fc" -__date__ = "2024-08-01 17:03:10 -0400" +__tag__ = "v0.1.0-42-gab24a2dc" +__commit__ = "ab24a2dc21c2f22c40d85bfa935e0ab07ae30dd9" +__date__ = "2024-08-20 10:02:58 -0400" diff --git a/milabench/cli/__init__.py b/milabench/cli/__init__.py index 0a2072368..5a1f122c5 100644 --- a/milabench/cli/__init__.py +++ b/milabench/cli/__init__.py @@ -22,7 +22,7 @@ from .resolve import cli_resolve from .new import cli_new from .env import cli_env - +from .prepare_run import cli_prepare_run class Main: def new(): @@ -100,6 +100,9 @@ def env(): """Print milabench environment variables""" cli_env() + def prepare_run(): + cli_prepare_run() + def main(argv=None): sys.path.insert(0, os.path.abspath(os.curdir)) diff --git a/milabench/cli/slurm.py b/milabench/cli/slurm.py index ede8cdabe..35f1fe94e 100644 --- a/milabench/cli/slurm.py +++ b/milabench/cli/slurm.py @@ -62,6 +62,9 @@ def cli_slurm_system(): }] + from milabench.system import resolve_addresses + resolve_addresses(nodes) + system = { "arch": "cuda", "nodes": nodes, diff --git a/milabench/multi.py b/milabench/multi.py index 06aacae43..598a2eb82 100644 --- a/milabench/multi.py +++ b/milabench/multi.py @@ -256,8 +256,8 @@ async def do_pin( for ig, (reqs, packs) in groups.items(): if len(packs) < len(reqs): if len(set(p.config["group"] for p in packs)) > 1: - raise Exception( - f"Install group '{ig}' contains benchmarks that have more than" + print( + f"WARNING: Install group '{ig}' contains benchmarks that have more than" " one requirements file. Please isolate such benchmarks in their" " own install_group." ) diff --git a/milabench/remote.py b/milabench/remote.py index 4cebb2919..7e1eef85c 100644 --- a/milabench/remote.py +++ b/milabench/remote.py @@ -126,9 +126,10 @@ def milabench_remote_setup_plan(pack, setup_for="worker") -> SequenceCommand: copy = [] node_packs = [] - copy_source = copy_folder (INSTALL_FOLDER) + copy_source = copy_folder(pack, INSTALL_FOLDER, setup_for) install = [] + for i, node in enumerate(nodes): if should_run_for(node, setup_for): install.append(pip_install_milabench(node_packs[i], node, INSTALL_FOLDER)) diff --git a/milabench/sizer.py b/milabench/sizer.py index baec62e84..3bba9892d 100644 --- a/milabench/sizer.py +++ b/milabench/sizer.py @@ -331,6 +331,23 @@ def report(self, *args): yaml.dump(newdata, file) +def arch_to_device(arch): + device_types = [ + "cpu", + "cuda", + "ipu", + "xpu", + "mkldnn", + "opengl", "opencl", "ideep", "hip", "ve", + "fpga", "maia", "xla", "lazy", "vulkan", "mps", "meta", + "hpu", "mtia", "privateuseone" + ] + arch_to_device = {t:t for t in device_types} + arch_to_device["rocm"] = "cuda" + return arch_to_device.get(arch, "cpu") + + + def new_argument_resolver(pack): system_config = system_global.get() if system_config is None: @@ -350,6 +367,7 @@ def new_argument_resolver(pack): ccl = {"hpu": "hccl", "cuda": "nccl", "rocm": "rccl", "xpu": "ccl", "cpu": "gloo"} + cpu_opt = CPUOptions() def auto(value, default): if cpu_opt.enabled: @@ -370,6 +388,7 @@ def clamp(x, mn=cpu_opt.cpu_min, mx=cpu_opt.cpu_max): context["n_worker"] = cpu_opt.n_workers context["arch"] = arch + context["device_name"] = arch_to_device(arch) context["ccl"] = ccl.get(arch, "gloo") context["milabench_base"] = option("base", str, default="") diff --git a/milabench/system.py b/milabench/system.py index 4c2d89953..e86b1c7d1 100644 --- a/milabench/system.py +++ b/milabench/system.py @@ -370,7 +370,7 @@ def _resolve_addresses(nodes): # print(hostname, socket.gethostname()) node["local"] = is_local - if is_local: + if is_local and self is None: self = node node["ipaddrlist"] = list(set(list(ip_list) + list(ipaddrlist))) @@ -399,7 +399,7 @@ def resolve_hostname(ip): if is_loopback(ip): return hostname, True - return hostname, False + return hostname, hostname == socket.gethostname() except: if offline: diff --git a/scripts/article/run_cuda_dev.sh b/scripts/article/run_cuda_dev.sh index 78224debd..c21730b7a 100644 --- a/scripts/article/run_cuda_dev.sh +++ b/scripts/article/run_cuda_dev.sh @@ -26,7 +26,7 @@ export MILABENCH_SYSTEM="$MILABENCH_WORDIR/system.yaml" if [ -z "${MILABENCH_DIRS_VENV}" ]; then export BENCHMARK_VENV="$MILABENCH_WORDIR/results/venv/torch" else - export BENCHMARK_VENV="$MILABENCH_DIRS_VENV" + export BENCHMARK_VENV="$MILABENCH_DIRS_VENV/"'${install_group}' fi if [ -z "${MILABENCH_PREPARE}" ]; then @@ -63,8 +63,9 @@ install_prepare() { . $MILABENCH_WORDIR/env/bin/activate pip install -e $MILABENCH_SOURCE - # milabench pin --variant cuda --from-scratch "$@" - + # need torch for pinning + pip install torch + milabench pin --variant cuda --from-scratch "$@" milabench slurm_system > $MILABENCH_WORDIR/system.yaml @@ -78,8 +79,9 @@ install_prepare() { # pip install -e $MILABENCH_WORDIR/torchcompat ( - . $BENCHMARK_VENV/bin/activate - which pip + echo "Pass" + # . $BENCHMARK_VENV/bin/activate + # which pip #pip install -e $MILABENCH_WORDIR/voir # pip install -e $MILABENCH_WORDIR/torchcompat # pip install torch torchvision torchaudio @@ -99,7 +101,7 @@ install_prepare() { module load cuda/12.3.2 -if [ ! -d "$BENCHMARK_VENV" ]; then +if [ ! -d "$MILABENCH_VENV" ]; then install_prepare else echo "Reusing previous install" diff --git a/scripts/article/run_rocm.sh b/scripts/article/run_rocm.sh index 79e736c20..b8a15fb76 100644 --- a/scripts/article/run_rocm.sh +++ b/scripts/article/run_rocm.sh @@ -31,7 +31,7 @@ install_prepare() { # Override/add package to milabench venv here # which pip - # pip install ... + pip uninstall pynvml ( . $BENCHMARK_VENV/bin/activate @@ -41,7 +41,24 @@ install_prepare() { # which pip pip uninstall torch torchvision torchaudio - pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.0 + pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.1 + pip uninstall pynvml + + # sudo apt-get install lld + # https://github.com/ROCm/jax/releases/tag/rocm-jaxlib-v0.4.30 + # does not really work + pip install https://github.com/ROCm/jax/releases/download/rocm-jaxlib-v0.4.30/jaxlib-0.4.30+rocm611-cp310-cp310-manylinux2014_x86_64.whl + pip install https://github.com/ROCm/jax/archive/refs/tags/rocm-jaxlib-v0.4.30.tar.gz + + # + FORCE_CUDA=1 pip install -U -v --no-build-isolation git+https://github.com/rusty1s/pytorch_cluster.git + FORCE_CUDA=1 pip install -U -v --no-build-isolation git+https://github.com/rusty1s/pytorch_scatter.git + FORCE_CUDA=1 pip install -U -v --no-build-isolation git+https://github.com/rusty1s/pytorch_sparse.git + + # takes forever to compile + # https://github.com/ROCm/xformers + pip install -v -U --no-build-isolation --no-deps git+https://github.com/ROCm/xformers.git@develop#egg=xformers + pip install -v -U --no-build-isolation --no-deps git+https://github.com/ROCm/flash-attention.git ) #