From 9dd7959fc3629f9d26833ed44b941fbc8567dc6f Mon Sep 17 00:00:00 2001 From: Michael Dwan Date: Wed, 18 Feb 2026 15:34:56 -0700 Subject: [PATCH 1/2] Fix compatgen: fetch CuDNN version from image config instead of tags Newer nvidia/cuda image tags no longer include the CuDNN version number (e.g. '12.9.1-cudnn-devel-ubuntu24.04' instead of '12.6.3-cudnn9-devel-ubuntu22.04'). This fetches the Docker image config and reads CUDA_VERSION and NV_CUDNN_VERSION from environment variables instead of parsing the tag string. Also adds deterministic sorting of output and Docker Hub auth to avoid rate limits. --- tools/compatgen/internal/cuda.go | 84 ++++++++++++++++++++++++++------ tools/compatgen/main.go | 4 +- 2 files changed, 73 insertions(+), 15 deletions(-) diff --git a/tools/compatgen/internal/cuda.go b/tools/compatgen/internal/cuda.go index 7105cf3943..83d66a8f3f 100644 --- a/tools/compatgen/internal/cuda.go +++ b/tools/compatgen/internal/cuda.go @@ -1,32 +1,48 @@ package internal import ( + "cmp" + "context" "encoding/json" "fmt" + "slices" "sort" "strings" "github.com/anaskhan96/soup" + "github.com/google/go-containerregistry/pkg/authn" + "github.com/google/go-containerregistry/pkg/name" + "github.com/google/go-containerregistry/pkg/v1/remote" "github.com/replicate/cog/pkg/config" ) -func FetchCUDABaseImages() ([]config.CUDABaseImage, error) { +func FetchCUDABaseImages(ctx context.Context) ([]config.CUDABaseImage, error) { url := "https://hub.docker.com/v2/repositories/nvidia/cuda/tags/?page_size=1000&name=devel-ubuntu&ordering=last_updated" tags, err := fetchCUDABaseImageTags(url) if err != nil { return nil, err } - images := []config.CUDABaseImage{} + var images []config.CUDABaseImage for _, tag := range tags { - image, err := parseCUDABaseImage(tag) + image, err := parseCUDABaseImage(ctx, tag) if err != nil { return nil, err } images = append(images, *image) } + // stable sort for deterministic output + slices.SortFunc(images, func(a, b config.CUDABaseImage) int { + return cmp.Or( + cmp.Compare(a.CUDA, b.CUDA), + cmp.Compare(a.CuDNN, b.CuDNN), + cmp.Compare(a.Ubuntu, b.Ubuntu), + cmp.Compare(a.Tag, b.Tag), + ) + }) + return images, nil } @@ -70,17 +86,57 @@ func fetchCUDABaseImageTags(url string) ([]string, error) { return tags, nil } -func parseCUDABaseImage(tag string) (*config.CUDABaseImage, error) { - parts := strings.Split(tag, "-") - if len(parts) != 4 { - return nil, fmt.Errorf("Tag must be in the format -cudnn-{devel,runtime}-ubuntu. Invalid tag: %s", tag) - } +// parseCUDABaseImage fetches the Docker image config for an nvidia/cuda tag +// and extracts CUDA and CuDNN versions from environment variables. This is +// necessary because newer nvidia/cuda tags no longer include the CuDNN version +// in the tag itself (e.g. "12.9.1-cudnn-devel-ubuntu24.04" instead of +// "12.6.3-cudnn9-devel-ubuntu22.04"). +func parseCUDABaseImage(ctx context.Context, tag string) (*config.CUDABaseImage, error) { + fmt.Println("parsing", tag) - return &config.CUDABaseImage{ + baseImg := &config.CUDABaseImage{ Tag: tag, - CUDA: parts[0], - CuDNN: strings.Split(parts[1], "cudnn")[1], - IsDevel: parts[2] == "devel", - Ubuntu: strings.Split(parts[3], "ubuntu")[1], - }, nil + IsDevel: strings.Contains(tag, "-devel"), + } + + if parts := strings.Split(tag, "ubuntu"); len(parts) == 2 { + baseImg.Ubuntu = parts[1] + } else { + return nil, fmt.Errorf("invalid tag, must end in ubuntu: %q", tag) + } + + ref, err := name.ParseReference(fmt.Sprintf("nvidia/cuda:%s", tag)) + if err != nil { + return nil, fmt.Errorf("failed to parse reference %s: %w", tag, err) + } + + img, err := remote.Image(ref, remote.WithContext(ctx), remote.WithAuthFromKeychain(authn.DefaultKeychain)) + if err != nil { + return nil, fmt.Errorf("failed to get image %s: %w", tag, err) + } + + cfg, err := img.ConfigFile() + if err != nil { + return nil, fmt.Errorf("failed to get config file %s: %w", tag, err) + } + + for _, envVal := range cfg.Config.Env { + parts := strings.SplitN(envVal, "=", 2) + if len(parts) != 2 { + continue + } + switch parts[0] { + case "CUDA_VERSION": + baseImg.CUDA = parts[1] + case "NV_CUDNN_VERSION": + // downstream code expects only the major version component + baseImg.CuDNN = strings.Split(parts[1], ".")[0] + } + } + + if baseImg.CuDNN == "" { + return nil, fmt.Errorf("no CuDNN version found in image config for tag %s", tag) + } + + return baseImg, nil } diff --git a/tools/compatgen/main.go b/tools/compatgen/main.go index 6bfc27dab5..e163719a40 100644 --- a/tools/compatgen/main.go +++ b/tools/compatgen/main.go @@ -1,6 +1,7 @@ package main import ( + "context" "encoding/json" "os" @@ -18,6 +19,7 @@ func main() { Short: "Generate compatibility matrix for Cog base images", Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { + ctx := context.Background() target := args[0] var v any @@ -25,7 +27,7 @@ func main() { switch target { case "cuda": - v, err = internal.FetchCUDABaseImages() + v, err = internal.FetchCUDABaseImages(ctx) if err != nil { console.Fatalf("Failed to fetch CUDA base image tags: %s", err) } From f70c096d76d6bb832b280594d817918c6d4c298b Mon Sep 17 00:00:00 2001 From: Michael Dwan Date: Wed, 18 Feb 2026 16:29:30 -0700 Subject: [PATCH 2/2] Regenerate compatibility matrices; drop entries with no supported Python versions - Regenerated cuda_compatibility.json: adds CUDA 13.0.x and 13.1.x, CuDNN versions now correctly extracted from image configs instead of manual patches - Regenerated torch_compatibility.json: adds torch 2.10.0, 2.9.x; drops 41 entries for torch versions with no supported Python versions (all < 3.10) - Updated tests to use torch versions still in the compatibility matrix --- pkg/config/config_test.go | 48 +- pkg/config/cuda_compatibility.json | 522 +++++++------ pkg/config/tf_compatibility.json | 14 + pkg/config/torch_compatibility.json | 1118 +++++++-------------------- tools/compatgen/internal/torch.go | 11 + 5 files changed, 626 insertions(+), 1087 deletions(-) diff --git a/pkg/config/config_test.go b/pkg/config/config_test.go index 4f3412c3d5..a8c935aa6b 100644 --- a/pkg/config/config_test.go +++ b/pkg/config/config_test.go @@ -97,9 +97,9 @@ func TestPythonPackagesAndRequirementsCantBeUsedTogether(t *testing.T) { func TestPythonRequirementsResolvesPythonPackagesAndCudaVersions(t *testing.T) { tmpDir := t.TempDir() - err := os.WriteFile(path.Join(tmpDir, "requirements.txt"), []byte(`torch==1.7.1 -torchvision==0.8.2 -torchaudio==0.7.2 + err := os.WriteFile(path.Join(tmpDir, "requirements.txt"), []byte(`torch==1.13.1 +torchvision==0.14.1 +torchaudio==0.13.1 foo==1.0.0`), 0o644) require.NoError(t, err) @@ -112,15 +112,15 @@ foo==1.0.0`), 0o644) } err = config.Complete(tmpDir) require.NoError(t, err) - require.Equal(t, "11.0", config.Build.CUDA) + require.Equal(t, "11.7", config.Build.CUDA) require.Equal(t, "8", config.Build.CuDNN) requirements, err := config.PythonRequirementsForArch("", "", []string{}) require.NoError(t, err) - expected := `--find-links https://download.pytorch.org/whl/torch_stable.html -torch==1.7.1 -torchvision==0.8.2 -torchaudio==0.7.2 + expected := `--extra-index-url https://download.pytorch.org/whl/cu117 +torch==1.13.1 +torchvision==0.14.1 +torchaudio==0.13.1 foo==1.0.0` require.Equal(t, expected, requirements) } @@ -238,8 +238,8 @@ func TestValidateAndCompleteCUDAForSelectedTorch(t *testing.T) { cuDNN string }{ {"2.0.1", "11.8", "8"}, - {"1.8.0", "11.1", "8"}, - {"1.7.0", "11.0", "8"}, + {"1.13.1", "11.7", "8"}, + {"1.11.0", "11.3", "8"}, } { config := &Config{ Build: &Build{ @@ -336,9 +336,9 @@ func TestPythonPackagesForArchTorchGPU(t *testing.T) { GPU: true, PythonVersion: "3.10", PythonPackages: []string{ - "torch==1.7.1", - "torchvision==0.8.2", - "torchaudio==0.7.2", + "torch==2.0.1", + "torchvision==0.15.2", + "torchaudio==2.0.2", "foo==1.0.0", }, CUDA: "11.8", @@ -351,10 +351,10 @@ func TestPythonPackagesForArchTorchGPU(t *testing.T) { requirements, err := config.PythonRequirementsForArch("", "", []string{}) require.NoError(t, err) - expected := `--find-links https://download.pytorch.org/whl/torch_stable.html -torch==1.7.1 -torchvision==0.8.2 -torchaudio==0.7.2 + expected := `--extra-index-url https://download.pytorch.org/whl/cu118 +torch==2.0.1 +torchvision==0.15.2 +torchaudio==2.0.2 foo==1.0.0` require.Equal(t, expected, requirements) } @@ -365,9 +365,9 @@ func TestPythonPackagesForArchTorchCPU(t *testing.T) { GPU: false, PythonVersion: "3.10", PythonPackages: []string{ - "torch==1.7.1", - "torchvision==0.8.2", - "torchaudio==0.7.2", + "torch==2.0.1", + "torchvision==0.15.2", + "torchaudio==2.0.2", "foo==1.0.0", }, CUDA: "11.8", @@ -378,10 +378,10 @@ func TestPythonPackagesForArchTorchCPU(t *testing.T) { requirements, err := config.PythonRequirementsForArch("", "", []string{}) require.NoError(t, err) - expected := `--find-links https://download.pytorch.org/whl/torch_stable.html -torch==1.7.1+cpu -torchvision==0.8.2+cpu -torchaudio==0.7.2 + expected := `--extra-index-url https://download.pytorch.org/whl/cpu +torch==2.0.1 +torchvision==0.15.2 +torchaudio==2.0.2 foo==1.0.0` require.Equal(t, expected, requirements) } diff --git a/pkg/config/cuda_compatibility.json b/pkg/config/cuda_compatibility.json index c04c0f6d65..925a04920f 100644 --- a/pkg/config/cuda_compatibility.json +++ b/pkg/config/cuda_compatibility.json @@ -1,224 +1,238 @@ [ { - "Tag": "12.9.1-cudnn-devel-ubuntu24.04", - "CUDA": "12.9.1", - "CuDNN": "9", + "Tag": "11.0.3-cudnn8-devel-ubuntu16.04", + "CUDA": "11.0.3", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "24.04" + "Ubuntu": "16.04" }, { - "Tag": "12.9.1-cudnn-devel-ubuntu22.04", - "CUDA": "12.9.1", - "CuDNN": "9", + "Tag": "11.0.3-cudnn8-devel-ubuntu18.04", + "CUDA": "11.0.3", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "22.04" + "Ubuntu": "18.04" }, { - "Tag": "12.9.1-cudnn-devel-ubuntu20.04", - "CUDA": "12.9.1", - "CuDNN": "9", + "Tag": "11.0.3-cudnn8-devel-ubuntu20.04", + "CUDA": "11.0.3", + "CuDNN": "8", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.9.0-cudnn-devel-ubuntu24.04", - "CUDA": "12.9.0", - "CuDNN": "9", + "Tag": "11.1.1-cudnn8-devel-ubuntu16.04", + "CUDA": "11.1.1", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "24.04" + "Ubuntu": "16.04" }, { - "Tag": "12.9.0-cudnn-devel-ubuntu22.04", - "CUDA": "12.9.0", - "CuDNN": "9", + "Tag": "11.1.1-cudnn8-devel-ubuntu18.04", + "CUDA": "11.1.1", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "22.04" + "Ubuntu": "18.04" }, { - "Tag": "12.9.0-cudnn-devel-ubuntu20.04", - "CUDA": "12.9.0", - "CuDNN": "9", + "Tag": "11.1.1-cudnn8-devel-ubuntu20.04", + "CUDA": "11.1.1", + "CuDNN": "8", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.8.1-cudnn-devel-ubuntu24.04", - "CUDA": "12.8.1", - "CuDNN": "9", + "Tag": "11.2.2-cudnn8-devel-ubuntu16.04", + "CUDA": "11.2.2", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "24.04" + "Ubuntu": "16.04" }, { - "Tag": "12.8.1-cudnn-devel-ubuntu22.04", - "CUDA": "12.8.1", - "CuDNN": "9", + "Tag": "11.2.2-cudnn8-devel-ubuntu18.04", + "CUDA": "11.2.2", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "22.04" + "Ubuntu": "18.04" }, { - "Tag": "12.8.1-cudnn-devel-ubuntu20.04", - "CUDA": "12.8.1", - "CuDNN": "9", + "Tag": "11.2.2-cudnn8-devel-ubuntu20.04", + "CUDA": "11.2.2", + "CuDNN": "8", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.8.0-cudnn-devel-ubuntu24.04", - "CUDA": "12.8.0", - "CuDNN": "9", + "Tag": "11.3.1-cudnn8-devel-ubuntu16.04", + "CUDA": "11.3.1", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "24.04" + "Ubuntu": "16.04" }, { - "Tag": "12.8.0-cudnn-devel-ubuntu22.04", - "CUDA": "12.8.0", - "CuDNN": "9", + "Tag": "11.3.1-cudnn8-devel-ubuntu18.04", + "CUDA": "11.3.1", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "22.04" + "Ubuntu": "18.04" }, { - "Tag": "12.8.0-cudnn-devel-ubuntu20.04", - "CUDA": "12.8.0", - "CuDNN": "9", + "Tag": "11.3.1-cudnn8-devel-ubuntu20.04", + "CUDA": "11.3.1", + "CuDNN": "8", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.6.3-cudnn-devel-ubuntu24.04", - "CUDA": "12.6.3", - "CuDNN": "9", + "Tag": "11.4.3-cudnn8-devel-ubuntu18.04", + "CUDA": "11.4.3", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "24.04" + "Ubuntu": "18.04" }, { - "Tag": "12.6.3-cudnn-devel-ubuntu22.04", - "CUDA": "12.6.3", - "CuDNN": "9", + "Tag": "11.4.3-cudnn8-devel-ubuntu20.04", + "CUDA": "11.4.3", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "22.04" + "Ubuntu": "20.04" }, { - "Tag": "12.6.3-cudnn-devel-ubuntu20.04", - "CUDA": "12.6.3", - "CuDNN": "9", + "Tag": "11.5.2-cudnn8-devel-ubuntu18.04", + "CUDA": "11.5.2", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "20.04" + "Ubuntu": "18.04" }, { - "Tag": "12.6.2-cudnn-devel-ubuntu24.04", - "CUDA": "12.6.2", - "CuDNN": "9", + "Tag": "11.5.2-cudnn8-devel-ubuntu20.04", + "CUDA": "11.5.2", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "24.04" + "Ubuntu": "20.04" }, { - "Tag": "12.6.2-cudnn-devel-ubuntu22.04", - "CUDA": "12.6.2", - "CuDNN": "9", + "Tag": "11.6.1-cudnn8-devel-ubuntu20.04", + "CUDA": "11.6.1", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "22.04" + "Ubuntu": "20.04" }, { - "Tag": "12.6.2-cudnn-devel-ubuntu20.04", - "CUDA": "12.6.2", - "CuDNN": "9", + "Tag": "11.6.2-cudnn8-devel-ubuntu18.04", + "CUDA": "11.6.2", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "20.04" + "Ubuntu": "18.04" }, { - "Tag": "12.6.1-cudnn-devel-ubuntu24.04", - "CUDA": "12.6.1", - "CuDNN": "9", + "Tag": "11.6.2-cudnn8-devel-ubuntu20.04", + "CUDA": "11.6.2", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "24.04" + "Ubuntu": "20.04" }, { - "Tag": "12.6.1-cudnn-devel-ubuntu22.04", - "CUDA": "12.6.1", - "CuDNN": "9", + "Tag": "11.7.1-cudnn8-devel-ubuntu18.04", + "CUDA": "11.7.1", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "22.04" + "Ubuntu": "18.04" }, { - "Tag": "12.6.1-cudnn-devel-ubuntu20.04", - "CUDA": "12.6.1", - "CuDNN": "9", + "Tag": "11.7.1-cudnn8-devel-ubuntu20.04", + "CUDA": "11.7.1", + "CuDNN": "8", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.6.0-cudnn-devel-ubuntu24.04", - "CUDA": "12.6.0", - "CuDNN": "9", + "Tag": "11.7.1-cudnn8-devel-ubuntu22.04", + "CUDA": "11.7.1", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "24.04" + "Ubuntu": "22.04" }, { - "Tag": "12.6.0-cudnn-devel-ubuntu22.04", - "CUDA": "12.6.0", - "CuDNN": "9", + "Tag": "11.8.0-cudnn8-devel-ubuntu18.04", + "CUDA": "11.8.0", + "CuDNN": "8", "IsDevel": true, - "Ubuntu": "22.04" + "Ubuntu": "18.04" }, { - "Tag": "12.6.0-cudnn-devel-ubuntu20.04", - "CUDA": "12.6.0", - "CuDNN": "9", + "Tag": "11.8.0-cudnn8-devel-ubuntu20.04", + "CUDA": "11.8.0", + "CuDNN": "8", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.5.1-cudnn-devel-ubuntu22.04", - "CUDA": "12.5.1", - "CuDNN": "9", + "Tag": "11.8.0-cudnn8-devel-ubuntu22.04", + "CUDA": "11.8.0", + "CuDNN": "8", "IsDevel": true, "Ubuntu": "22.04" }, { - "Tag": "12.5.1-cudnn-devel-ubuntu20.04", - "CUDA": "12.5.1", - "CuDNN": "9", + "Tag": "12.0.0-cudnn8-devel-ubuntu18.04", + "CUDA": "12.0.0", + "CuDNN": "8", + "IsDevel": true, + "Ubuntu": "18.04" + }, + { + "Tag": "12.0.0-cudnn8-devel-ubuntu20.04", + "CUDA": "12.0.0", + "CuDNN": "8", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.4.1-cudnn-devel-ubuntu22.04", - "CUDA": "12.4.1", - "CuDNN": "9", + "Tag": "12.0.0-cudnn8-devel-ubuntu22.04", + "CUDA": "12.0.0", + "CuDNN": "8", "IsDevel": true, "Ubuntu": "22.04" }, { - "Tag": "12.4.1-cudnn-devel-ubuntu20.04", - "CUDA": "12.4.1", - "CuDNN": "9", + "Tag": "12.0.1-cudnn8-devel-ubuntu18.04", + "CUDA": "12.0.1", + "CuDNN": "8", + "IsDevel": true, + "Ubuntu": "18.04" + }, + { + "Tag": "12.0.1-cudnn8-devel-ubuntu20.04", + "CUDA": "12.0.1", + "CuDNN": "8", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.3.2-cudnn9-devel-ubuntu22.04", - "CUDA": "12.3.2", - "CuDNN": "9", + "Tag": "12.0.1-cudnn8-devel-ubuntu22.04", + "CUDA": "12.0.1", + "CuDNN": "8", "IsDevel": true, "Ubuntu": "22.04" }, { - "Tag": "12.3.2-cudnn9-devel-ubuntu20.04", - "CUDA": "12.3.2", - "CuDNN": "9", + "Tag": "12.1.0-cudnn8-devel-ubuntu20.04", + "CUDA": "12.1.0", + "CuDNN": "8", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.2.2-cudnn8-devel-ubuntu22.04", - "CUDA": "12.2.2", + "Tag": "12.1.0-cudnn8-devel-ubuntu22.04", + "CUDA": "12.1.0", "CuDNN": "8", "IsDevel": true, "Ubuntu": "22.04" }, { - "Tag": "12.2.2-cudnn8-devel-ubuntu20.04", - "CUDA": "12.2.2", + "Tag": "12.1.1-cudnn8-devel-ubuntu20.04", + "CUDA": "12.1.1", "CuDNN": "8", "IsDevel": true, "Ubuntu": "20.04" @@ -231,241 +245,283 @@ "Ubuntu": "22.04" }, { - "Tag": "12.1.1-cudnn8-devel-ubuntu20.04", - "CUDA": "12.1.1", + "Tag": "12.2.2-cudnn8-devel-ubuntu20.04", + "CUDA": "12.2.2", "CuDNN": "8", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.1.0-cudnn8-devel-ubuntu22.04", - "CUDA": "12.1.0", + "Tag": "12.2.2-cudnn8-devel-ubuntu22.04", + "CUDA": "12.2.2", "CuDNN": "8", "IsDevel": true, "Ubuntu": "22.04" }, { - "Tag": "12.1.0-cudnn8-devel-ubuntu20.04", - "CUDA": "12.1.0", - "CuDNN": "8", + "Tag": "12.3.2-cudnn9-devel-ubuntu20.04", + "CUDA": "12.3.2", + "CuDNN": "9", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.0.1-cudnn8-devel-ubuntu22.04", - "CUDA": "12.0.1", - "CuDNN": "8", + "Tag": "12.3.2-cudnn9-devel-ubuntu22.04", + "CUDA": "12.3.2", + "CuDNN": "9", "IsDevel": true, "Ubuntu": "22.04" }, { - "Tag": "12.0.1-cudnn8-devel-ubuntu20.04", - "CUDA": "12.0.1", - "CuDNN": "8", + "Tag": "12.4.1-cudnn-devel-ubuntu20.04", + "CUDA": "12.4.1", + "CuDNN": "9", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.0.1-cudnn8-devel-ubuntu18.04", - "CUDA": "12.0.1", - "CuDNN": "8", + "Tag": "12.4.1-cudnn-devel-ubuntu22.04", + "CUDA": "12.4.1", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "18.04" + "Ubuntu": "22.04" }, { - "Tag": "12.0.0-cudnn8-devel-ubuntu22.04", - "CUDA": "12.0.0", - "CuDNN": "8", + "Tag": "12.5.1-cudnn-devel-ubuntu20.04", + "CUDA": "12.5.1", + "CuDNN": "9", + "IsDevel": true, + "Ubuntu": "20.04" + }, + { + "Tag": "12.5.1-cudnn-devel-ubuntu22.04", + "CUDA": "12.5.1", + "CuDNN": "9", "IsDevel": true, "Ubuntu": "22.04" }, { - "Tag": "12.0.0-cudnn8-devel-ubuntu20.04", - "CUDA": "12.0.0", - "CuDNN": "8", + "Tag": "12.6.0-cudnn-devel-ubuntu20.04", + "CUDA": "12.6.0", + "CuDNN": "9", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "12.0.0-cudnn8-devel-ubuntu18.04", - "CUDA": "12.0.0", - "CuDNN": "8", + "Tag": "12.6.0-cudnn-devel-ubuntu22.04", + "CUDA": "12.6.0", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "18.04" + "Ubuntu": "22.04" }, { - "Tag": "11.8.0-cudnn8-devel-ubuntu22.04", - "CUDA": "11.8.0", - "CuDNN": "8", + "Tag": "12.6.0-cudnn-devel-ubuntu24.04", + "CUDA": "12.6.0", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "22.04" + "Ubuntu": "24.04" }, { - "Tag": "11.8.0-cudnn8-devel-ubuntu20.04", - "CUDA": "11.8.0", - "CuDNN": "8", + "Tag": "12.6.1-cudnn-devel-ubuntu20.04", + "CUDA": "12.6.1", + "CuDNN": "9", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "11.8.0-cudnn8-devel-ubuntu18.04", - "CUDA": "11.8.0", - "CuDNN": "8", + "Tag": "12.6.1-cudnn-devel-ubuntu22.04", + "CUDA": "12.6.1", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "18.04" + "Ubuntu": "22.04" }, { - "Tag": "11.7.1-cudnn8-devel-ubuntu22.04", - "CUDA": "11.7.1", - "CuDNN": "8", + "Tag": "12.6.1-cudnn-devel-ubuntu24.04", + "CUDA": "12.6.1", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "22.04" + "Ubuntu": "24.04" }, { - "Tag": "11.7.1-cudnn8-devel-ubuntu20.04", - "CUDA": "11.7.1", - "CuDNN": "8", + "Tag": "12.6.2-cudnn-devel-ubuntu20.04", + "CUDA": "12.6.2", + "CuDNN": "9", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "11.7.1-cudnn8-devel-ubuntu18.04", - "CUDA": "11.7.1", - "CuDNN": "8", + "Tag": "12.6.2-cudnn-devel-ubuntu22.04", + "CUDA": "12.6.2", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "18.04" + "Ubuntu": "22.04" }, { - "Tag": "11.6.2-cudnn8-devel-ubuntu20.04", - "CUDA": "11.6.2", - "CuDNN": "8", + "Tag": "12.6.2-cudnn-devel-ubuntu24.04", + "CUDA": "12.6.2", + "CuDNN": "9", + "IsDevel": true, + "Ubuntu": "24.04" + }, + { + "Tag": "12.6.3-cudnn-devel-ubuntu20.04", + "CUDA": "12.6.3", + "CuDNN": "9", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "11.6.2-cudnn8-devel-ubuntu18.04", - "CUDA": "11.6.2", - "CuDNN": "8", + "Tag": "12.6.3-cudnn-devel-ubuntu22.04", + "CUDA": "12.6.3", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "18.04" + "Ubuntu": "22.04" }, { - "Tag": "11.6.1-cudnn8-devel-ubuntu20.04", - "CUDA": "11.6.1", - "CuDNN": "8", + "Tag": "12.6.3-cudnn-devel-ubuntu24.04", + "CUDA": "12.6.3", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "20.04" + "Ubuntu": "24.04" }, { - "Tag": "11.5.2-cudnn8-devel-ubuntu20.04", - "CUDA": "11.5.2", - "CuDNN": "8", + "Tag": "12.8.0-cudnn-devel-ubuntu20.04", + "CUDA": "12.8.0", + "CuDNN": "9", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "11.5.2-cudnn8-devel-ubuntu18.04", - "CUDA": "11.5.2", - "CuDNN": "8", + "Tag": "12.8.0-cudnn-devel-ubuntu22.04", + "CUDA": "12.8.0", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "18.04" + "Ubuntu": "22.04" }, { - "Tag": "11.4.3-cudnn8-devel-ubuntu20.04", - "CUDA": "11.4.3", - "CuDNN": "8", + "Tag": "12.8.0-cudnn-devel-ubuntu24.04", + "CUDA": "12.8.0", + "CuDNN": "9", + "IsDevel": true, + "Ubuntu": "24.04" + }, + { + "Tag": "12.8.1-cudnn-devel-ubuntu20.04", + "CUDA": "12.8.1", + "CuDNN": "9", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "11.4.3-cudnn8-devel-ubuntu18.04", - "CUDA": "11.4.3", - "CuDNN": "8", + "Tag": "12.8.1-cudnn-devel-ubuntu22.04", + "CUDA": "12.8.1", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "18.04" + "Ubuntu": "22.04" }, { - "Tag": "11.3.1-cudnn8-devel-ubuntu20.04", - "CUDA": "11.3.1", - "CuDNN": "8", + "Tag": "12.8.1-cudnn-devel-ubuntu24.04", + "CUDA": "12.8.1", + "CuDNN": "9", + "IsDevel": true, + "Ubuntu": "24.04" + }, + { + "Tag": "12.9.0-cudnn-devel-ubuntu20.04", + "CUDA": "12.9.0", + "CuDNN": "9", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "11.3.1-cudnn8-devel-ubuntu18.04", - "CUDA": "11.3.1", - "CuDNN": "8", + "Tag": "12.9.0-cudnn-devel-ubuntu22.04", + "CUDA": "12.9.0", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "18.04" + "Ubuntu": "22.04" }, { - "Tag": "11.3.1-cudnn8-devel-ubuntu16.04", - "CUDA": "11.3.1", - "CuDNN": "8", + "Tag": "12.9.0-cudnn-devel-ubuntu24.04", + "CUDA": "12.9.0", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "16.04" + "Ubuntu": "24.04" }, { - "Tag": "11.2.2-cudnn8-devel-ubuntu20.04", - "CUDA": "11.2.2", - "CuDNN": "8", + "Tag": "12.9.1-cudnn-devel-ubuntu20.04", + "CUDA": "12.9.1", + "CuDNN": "9", "IsDevel": true, "Ubuntu": "20.04" }, { - "Tag": "11.2.2-cudnn8-devel-ubuntu18.04", - "CUDA": "11.2.2", - "CuDNN": "8", + "Tag": "12.9.1-cudnn-devel-ubuntu22.04", + "CUDA": "12.9.1", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "18.04" + "Ubuntu": "22.04" }, { - "Tag": "11.2.2-cudnn8-devel-ubuntu16.04", - "CUDA": "11.2.2", - "CuDNN": "8", + "Tag": "12.9.1-cudnn-devel-ubuntu24.04", + "CUDA": "12.9.1", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "16.04" + "Ubuntu": "24.04" }, { - "Tag": "11.1.1-cudnn8-devel-ubuntu20.04", - "CUDA": "11.1.1", - "CuDNN": "8", + "Tag": "13.0.0-cudnn-devel-ubuntu22.04", + "CUDA": "13.0.0", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "20.04" + "Ubuntu": "22.04" }, { - "Tag": "11.1.1-cudnn8-devel-ubuntu18.04", - "CUDA": "11.1.1", - "CuDNN": "8", + "Tag": "13.0.0-cudnn-devel-ubuntu24.04", + "CUDA": "13.0.0", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "18.04" + "Ubuntu": "24.04" }, { - "Tag": "11.1.1-cudnn8-devel-ubuntu16.04", - "CUDA": "11.1.1", - "CuDNN": "8", + "Tag": "13.0.1-cudnn-devel-ubuntu22.04", + "CUDA": "13.0.1", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "16.04" + "Ubuntu": "22.04" }, { - "Tag": "11.0.3-cudnn8-devel-ubuntu20.04", - "CUDA": "11.0.3", - "CuDNN": "8", + "Tag": "13.0.1-cudnn-devel-ubuntu24.04", + "CUDA": "13.0.1", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "20.04" + "Ubuntu": "24.04" }, { - "Tag": "11.0.3-cudnn8-devel-ubuntu18.04", - "CUDA": "11.0.3", - "CuDNN": "8", + "Tag": "13.0.2-cudnn-devel-ubuntu22.04", + "CUDA": "13.0.2", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "18.04" + "Ubuntu": "22.04" }, { - "Tag": "11.0.3-cudnn8-devel-ubuntu16.04", - "CUDA": "11.0.3", - "CuDNN": "8", + "Tag": "13.0.2-cudnn-devel-ubuntu24.04", + "CUDA": "13.0.2", + "CuDNN": "9", "IsDevel": true, - "Ubuntu": "16.04" + "Ubuntu": "24.04" + }, + { + "Tag": "13.1.1-cudnn-devel-ubuntu22.04", + "CUDA": "13.1.1", + "CuDNN": "9", + "IsDevel": true, + "Ubuntu": "22.04" + }, + { + "Tag": "13.1.1-cudnn-devel-ubuntu24.04", + "CUDA": "13.1.1", + "CuDNN": "9", + "IsDevel": true, + "Ubuntu": "24.04" } -] +] \ No newline at end of file diff --git a/pkg/config/tf_compatibility.json b/pkg/config/tf_compatibility.json index 31cd18b6da..9d79c09985 100644 --- a/pkg/config/tf_compatibility.json +++ b/pkg/config/tf_compatibility.json @@ -1,4 +1,18 @@ [ + { + "TF": "2.20.0", + "TFCPUPackage": "tensorflow==2.20.0", + "TFGPUPackage": "tensorflow==2.20.0", + "CUDA": "12.5", + "CuDNN": "9.3", + "Pythons": [ + "3.9", + "3.10", + "3.11", + "3.12", + "3.13" + ] + }, { "TF": "2.19.0", "TFCPUPackage": "tensorflow==2.19.0", diff --git a/pkg/config/torch_compatibility.json b/pkg/config/torch_compatibility.json index d2d97c2907..df05ce0572 100644 --- a/pkg/config/torch_compatibility.json +++ b/pkg/config/torch_compatibility.json @@ -1,8 +1,38 @@ [ { - "Torch": "2.8.0+cpu", - "Torchvision": "0.23.0", - "Torchaudio": "2.8.0", + "Torch": "2.10.0+cu129", + "Torchvision": "0.25.0", + "Torchaudio": "2.10.0", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cu129/", + "CUDA": "12.9", + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13", + "3.14" + ] + }, + { + "Torch": "2.10.0+cu130", + "Torchvision": "0.25.0", + "Torchaudio": "2.10.0", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cu130/", + "CUDA": "13.0", + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13", + "3.14" + ] + }, + { + "Torch": "2.10.0+cpu", + "Torchvision": "0.25.0", + "Torchaudio": "2.10.0", "FindLinks": "", "ExtraIndexURL": "https://download.pytorch.org/whl/cpu/", "CUDA": null, @@ -11,13 +41,13 @@ "3.11", "3.12", "3.13", - "3.9" + "3.14" ] }, { - "Torch": "2.8.0+cu126", - "Torchvision": "0.23.0", - "Torchaudio": "2.8.0", + "Torch": "2.10.0+cu126", + "Torchvision": "0.25.0", + "Torchaudio": "2.10.0", "FindLinks": "", "ExtraIndexURL": "https://download.pytorch.org/whl/cu126/", "CUDA": "12.6", @@ -26,13 +56,13 @@ "3.11", "3.12", "3.13", - "3.9" + "3.14" ] }, { - "Torch": "2.8.0+cu128", - "Torchvision": "0.23.0", - "Torchaudio": "2.8.0", + "Torch": "2.10.0+cu128", + "Torchvision": "0.25.0", + "Torchaudio": "2.10.0", "FindLinks": "", "ExtraIndexURL": "https://download.pytorch.org/whl/cu128/", "CUDA": "12.8", @@ -41,22 +71,183 @@ "3.11", "3.12", "3.13", - "3.9" + "3.14" + ] + }, + { + "Torch": "2.9.1", + "Torchvision": "0.24.1", + "Torchaudio": "2.9.1", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cu126", + "CUDA": "12.6", + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13", + "3.14" + ] + }, + { + "Torch": "2.9.1", + "Torchvision": "0.24.1", + "Torchaudio": "2.9.1", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cu128", + "CUDA": "12.8", + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13", + "3.14" + ] + }, + { + "Torch": "2.9.1", + "Torchvision": "0.24.1", + "Torchaudio": "2.9.1", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cu130", + "CUDA": "13.0", + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13", + "3.14" + ] + }, + { + "Torch": "2.9.1", + "Torchvision": "0.24.1", + "Torchaudio": "2.9.1", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cpu", + "CUDA": null, + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13", + "3.14" + ] + }, + { + "Torch": "2.9.0", + "Torchvision": "0.24.0", + "Torchaudio": "2.9.0", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cu126", + "CUDA": "12.6", + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13", + "3.14" + ] + }, + { + "Torch": "2.9.0", + "Torchvision": "0.24.0", + "Torchaudio": "2.9.0", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cu128", + "CUDA": "12.8", + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13", + "3.14" + ] + }, + { + "Torch": "2.9.0", + "Torchvision": "0.24.0", + "Torchaudio": "2.9.0", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cu130", + "CUDA": "13.0", + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13", + "3.14" + ] + }, + { + "Torch": "2.9.0", + "Torchvision": "0.24.0", + "Torchaudio": "2.9.0", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cpu", + "CUDA": null, + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13", + "3.14" ] }, { - "Torch": "2.8.0+cu129", + "Torch": "2.8.0", "Torchvision": "0.23.0", "Torchaudio": "2.8.0", "FindLinks": "", - "ExtraIndexURL": "https://download.pytorch.org/whl/cu129/", + "ExtraIndexURL": "https://download.pytorch.org/whl/cu126", + "CUDA": "12.6", + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13" + ] + }, + { + "Torch": "2.8.0", + "Torchvision": "0.23.0", + "Torchaudio": "2.8.0", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cu128", + "CUDA": "12.8", + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13" + ] + }, + { + "Torch": "2.8.0", + "Torchvision": "0.23.0", + "Torchaudio": "2.8.0", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cu129", "CUDA": "12.9", "Pythons": [ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" + ] + }, + { + "Torch": "2.8.0", + "Torchvision": "0.23.0", + "Torchaudio": "2.8.0", + "FindLinks": "", + "ExtraIndexURL": "https://download.pytorch.org/whl/cpu", + "CUDA": null, + "Pythons": [ + "3.10", + "3.11", + "3.12", + "3.13" ] }, { @@ -70,8 +261,7 @@ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" ] }, { @@ -85,8 +275,7 @@ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" ] }, { @@ -100,8 +289,7 @@ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" ] }, { @@ -115,8 +303,7 @@ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" ] }, { @@ -130,8 +317,7 @@ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" ] }, { @@ -145,8 +331,7 @@ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" ] }, { @@ -160,8 +345,7 @@ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" ] }, { @@ -175,8 +359,7 @@ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" ] }, { @@ -190,8 +373,7 @@ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" ] }, { @@ -205,8 +387,7 @@ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" ] }, { @@ -220,8 +401,7 @@ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" ] }, { @@ -235,8 +415,7 @@ "3.10", "3.11", "3.12", - "3.13", - "3.9" + "3.13" ] }, { @@ -249,8 +428,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.9" + "3.12" ] }, { @@ -263,8 +441,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.9" + "3.12" ] }, { @@ -277,8 +454,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.9" + "3.12" ] }, { @@ -291,8 +467,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.9" + "3.12" ] }, { @@ -305,8 +480,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.9" + "3.12" ] }, { @@ -319,8 +493,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.9" + "3.12" ] }, { @@ -333,8 +506,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.9" + "3.12" ] }, { @@ -347,8 +519,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.9" + "3.12" ] }, { @@ -361,9 +532,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -376,9 +545,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -391,9 +558,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -406,9 +571,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -421,9 +584,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -436,9 +597,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -451,9 +610,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -466,9 +623,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -481,9 +636,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -496,9 +649,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -511,9 +662,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -526,9 +675,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -541,9 +688,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -556,9 +701,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -571,9 +714,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -586,9 +727,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -601,9 +740,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -616,9 +753,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -631,9 +766,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -646,9 +779,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -661,9 +792,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -676,9 +805,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -691,9 +818,7 @@ "Pythons": [ "3.10", "3.11", - "3.12", - "3.8", - "3.9" + "3.12" ] }, { @@ -705,9 +830,7 @@ "CUDA": "11.8", "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -719,9 +842,7 @@ "CUDA": "12.1", "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -733,9 +854,7 @@ "CUDA": null, "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -747,9 +866,7 @@ "CUDA": "11.8", "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -761,9 +878,7 @@ "CUDA": "12.1", "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -775,9 +890,7 @@ "CUDA": null, "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -789,9 +902,7 @@ "CUDA": "11.8", "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -803,9 +914,7 @@ "CUDA": "12.1", "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -817,9 +926,7 @@ "CUDA": null, "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -831,9 +938,7 @@ "CUDA": "11.7", "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -845,9 +950,7 @@ "CUDA": "11.8", "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -859,9 +962,7 @@ "CUDA": null, "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -873,9 +974,7 @@ "CUDA": "11.7", "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -887,9 +986,7 @@ "CUDA": "11.8", "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -901,9 +998,7 @@ "CUDA": null, "Pythons": [ "3.10", - "3.11", - "3.8", - "3.9" + "3.11" ] }, { @@ -914,10 +1009,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cu116", "CUDA": "11.6", "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -928,10 +1020,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cu117", "CUDA": "11.7", "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -942,10 +1031,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cpu", "CUDA": null, "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -956,10 +1042,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cu116", "CUDA": "11.6", "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -970,10 +1053,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cu117", "CUDA": "11.7", "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -984,10 +1064,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cpu", "CUDA": null, "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -998,10 +1075,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cu116", "CUDA": "11.6", "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -1012,10 +1086,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cu113", "CUDA": "11.3", "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -1026,10 +1097,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cu102", "CUDA": "10.2", "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -1040,10 +1108,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cpu", "CUDA": null, "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -1054,10 +1119,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cu116", "CUDA": "11.6", "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -1068,10 +1130,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cu113", "CUDA": "11.3", "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -1082,10 +1141,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cu102", "CUDA": "10.2", "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -1096,10 +1152,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cpu", "CUDA": null, "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -1110,10 +1163,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cu113", "CUDA": "11.3", "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -1124,10 +1174,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cu102", "CUDA": "10.2", "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" + "3.10" ] }, { @@ -1138,575 +1185,7 @@ "ExtraIndexURL": "https://download.pytorch.org/whl/cpu", "CUDA": null, "Pythons": [ - "3.10", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.10.1+cu111", - "Torchvision": "0.11.2+cu111", - "Torchaudio": "0.10.1", - "FindLinks": "https://download.pytorch.org/whl/cu111/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "11.1", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.10.1+cu102", - "Torchvision": "0.11.2+cu102", - "Torchaudio": "0.10.1", - "FindLinks": "https://download.pytorch.org/whl/cu102/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "10.2", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.10.1+cpu", - "Torchvision": "0.11.2+cpu", - "Torchaudio": "0.10.1", - "FindLinks": "https://download.pytorch.org/whl/cpu/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": null, - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.10.0+cu111", - "Torchvision": "0.11.0+cu111", - "Torchaudio": "0.10.0", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "11.1", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.10.0+cu102", - "Torchvision": "0.11.0+cu102", - "Torchaudio": "0.10.0", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "10.2", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.10.0+cpu", - "Torchvision": "0.11.0+cpu", - "Torchaudio": "0.10.0", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": null, - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.9.1+cu111", - "Torchvision": "0.10.1+cu111", - "Torchaudio": "0.9.1", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "11.1", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.9.1+cu102", - "Torchvision": "0.10.1+cu102", - "Torchaudio": "0.9.1", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "10.2", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.9.1+cpu", - "Torchvision": "0.10.1+cpu", - "Torchaudio": "0.9.1", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": null, - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.9.0+cu111", - "Torchvision": "0.10.0+cu111", - "Torchaudio": "0.9.0", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "11.1", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.9.0+cu102", - "Torchvision": "0.10.0+cu102", - "Torchaudio": "0.9.0", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "10.2", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.9.0+cpu", - "Torchvision": "0.10.0+cpu", - "Torchaudio": "0.9.0", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": null, - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.8.1+cu111", - "Torchvision": "0.9.1+cu111", - "Torchaudio": "0.8.1", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "11.1", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.8.1+cu102", - "Torchvision": "0.9.1+cu102", - "Torchaudio": "0.8.1", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "10.2", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.8.1+cu101", - "Torchvision": "0.9.1+cu101", - "Torchaudio": "0.8.1", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "10.1", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.8.1+cpu", - "Torchvision": "0.9.1+cpu", - "Torchaudio": "0.8.1", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": null, - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.8.0+cu111", - "Torchvision": "0.9.0+cu111", - "Torchaudio": "0.8.0", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "11.1", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.8.0", - "Torchvision": "0.9.0", - "Torchaudio": "0.8.0", - "FindLinks": "", - "ExtraIndexURL": "", - "CUDA": "10.2", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.8.0+cpu", - "Torchvision": "0.9.0+cpu", - "Torchaudio": "0.8.0", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": null, - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.7.1+cu110", - "Torchvision": "0.8.2+cu110", - "Torchaudio": "0.7.2", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "11.0", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.7.1", - "Torchvision": "0.8.2", - "Torchaudio": "0.7.2", - "FindLinks": "", - "ExtraIndexURL": "", - "CUDA": "10.2", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.7.1+cu101", - "Torchvision": "0.8.2+cu101", - "Torchaudio": "0.7.2", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "10.1", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.7.1+cu92", - "Torchvision": "0.8.2+cu92", - "Torchaudio": "0.7.2", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "9.2", - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.7.1+cpu", - "Torchvision": "0.8.2+cpu", - "Torchaudio": "0.7.2", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": null, - "Pythons": [ - "3.6", - "3.7", - "3.8", - "3.9" - ] - }, - { - "Torch": "1.7.0+cu110", - "Torchvision": "0.8.1+cu110", - "Torchaudio": "0.7.0", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "11.0", - "Pythons": [ - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.7.0", - "Torchvision": "0.8.1", - "Torchaudio": "0.7.0", - "FindLinks": "", - "ExtraIndexURL": "", - "CUDA": "10.2", - "Pythons": [ - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.7.0+cu101", - "Torchvision": "0.8.1+cu101", - "Torchaudio": "0.7.0", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "10.1", - "Pythons": [ - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.7.0+cu92", - "Torchvision": "0.8.1+cu92", - "Torchaudio": "0.7.0", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "9.2", - "Pythons": [ - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.7.0+cpu", - "Torchvision": "0.8.1+cpu", - "Torchaudio": "0.7.0", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": null, - "Pythons": [ - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.6.0", - "Torchvision": "0.7.0", - "Torchaudio": "", - "FindLinks": "", - "ExtraIndexURL": "", - "CUDA": "10.2", - "Pythons": [ - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.6.0+cu101", - "Torchvision": "0.7.0+cu101", - "Torchaudio": "", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "10.1", - "Pythons": [ - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.6.0+cu92", - "Torchvision": "0.7.0+cu92", - "Torchaudio": "", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "9.2", - "Pythons": [ - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.6.0+cpu", - "Torchvision": "0.7.0+cpu", - "Torchaudio": "", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": null, - "Pythons": [ - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.5.1", - "Torchvision": "0.6.1", - "Torchaudio": "", - "FindLinks": "", - "ExtraIndexURL": "", - "CUDA": "10.2", - "Pythons": [ - "3.5", - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.5.1+cu101", - "Torchvision": "0.6.1+cu101", - "Torchaudio": "", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "10.1", - "Pythons": [ - "3.5", - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.5.1+cu92", - "Torchvision": "0.6.1+cu92", - "Torchaudio": "", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "9.2", - "Pythons": [ - "3.5", - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.5.1+cpu", - "Torchvision": "0.6.1+cpu", - "Torchaudio": "", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": null, - "Pythons": [ - "3.5", - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.5.0", - "Torchvision": "0.6.0", - "Torchaudio": "", - "FindLinks": "", - "ExtraIndexURL": "", - "CUDA": "10.2", - "Pythons": [ - "3.5", - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.5.0+cu101", - "Torchvision": "0.6.0+cu101", - "Torchaudio": "", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "10.1", - "Pythons": [ - "3.5", - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.5.0+cu92", - "Torchvision": "0.6.0+cu92", - "Torchaudio": "", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": "9.2", - "Pythons": [ - "3.5", - "3.6", - "3.7", - "3.8" - ] - }, - { - "Torch": "1.5.0+cpu", - "Torchvision": "0.6.0+cpu", - "Torchaudio": "", - "FindLinks": "https://download.pytorch.org/whl/torch_stable.html", - "ExtraIndexURL": "", - "CUDA": null, - "Pythons": [ - "3.5", - "3.6", - "3.7", - "3.8" + "3.10" ] }, { @@ -1717,11 +1196,7 @@ "ExtraIndexURL": "", "CUDA": "10.1", "Pythons": [ - "2.7", - "3.5", - "3.6", - "3.7", - "3.8" + "2.7" ] }, { @@ -1732,11 +1207,7 @@ "ExtraIndexURL": "", "CUDA": "9.2", "Pythons": [ - "2.7", - "3.5", - "3.6", - "3.7", - "3.8" + "2.7" ] }, { @@ -1747,11 +1218,7 @@ "ExtraIndexURL": "", "CUDA": null, "Pythons": [ - "2.7", - "3.5", - "3.6", - "3.7", - "3.8" + "2.7" ] }, { @@ -1762,10 +1229,7 @@ "ExtraIndexURL": "", "CUDA": "10.0", "Pythons": [ - "2.7", - "3.5", - "3.6", - "3.7" + "2.7" ] }, { @@ -1776,10 +1240,7 @@ "ExtraIndexURL": "", "CUDA": "9.2", "Pythons": [ - "2.7", - "3.5", - "3.6", - "3.7" + "2.7" ] }, { @@ -1790,10 +1251,7 @@ "ExtraIndexURL": "", "CUDA": null, "Pythons": [ - "2.7", - "3.5", - "3.6", - "3.7" + "2.7" ] } ] \ No newline at end of file diff --git a/tools/compatgen/internal/torch.go b/tools/compatgen/internal/torch.go index 5babdd0f94..6b10c4629a 100644 --- a/tools/compatgen/internal/torch.go +++ b/tools/compatgen/internal/torch.go @@ -33,6 +33,17 @@ func FetchTorchCompatibilityMatrix() ([]config.TorchCompatibility, error) { return nil, err } + // Remove entries with no supported Python versions + filtered := make([]config.TorchCompatibility, 0, len(compats)) + for _, c := range compats { + if len(c.Pythons) > 0 { + filtered = append(filtered, c) + } else { + console.Warnf("Dropping %s: no supported Python versions", c.Torch) + } + } + compats = filtered + // sanity check if len(compats) < 21 { return nil, fmt.Errorf("PyTorch compatibility matrix only had %d rows, has the html changed?", len(compats))