Linux Cuda Deprecation and Image Policy

Hi Everyone,

Some of CircleCI’s Linux CUDA Images will are deprecated as of today, July 11th, 2023. There will be no further releases or support for these images and they will be permanently unavailable as of September 30th, 2023

Email notifications will be sent out to anyone who has used one of the following images within the last six months.

NOTE:

The deprecation and affected images will only apply to those who have used the gpu resource class. These classes can be found in the Resource classes section

Affected Images

  • CUDA Images
    • ubuntu-1604-cuda-9.2:201909-23
    • ubuntu-1604-cuda-10.1:201909-23
    • ubuntu-1604-cuda-10.1:202103-12
    • ubuntu-1604-cuda-10.2:202012-01
    • ubuntu-1604-cuda-11.1:202012-01
    • ubuntu-2004-cuda-11.2:202103-01
    • ubuntu-2004-cuda-11.4:202110-01
    • ubuntu-2004-cuda-11.6:2022.09.1
  • GPU Images
    • ubuntu-2004:202104-01
    • ubuntu-2004:202107-02
    • ubuntu-2004:202111-02
    • ubuntu-2004:202101-01
    • ubuntu-2004:202201-02

Brownout Schedule

As a result of the deprecations, we will be conducting brownouts for the images. Please refer to the full schedule, as well as a blog post on why we conduct brownouts

  • 16 August 2023
    • 07:00 UTC → 11:00 UTC
    • 13:00 UTC → 17:00 UTC
    • 20:00 UTC → 00:00 UTC
  • 19 September 2023
    • 01:00 UTC → 11:00 UTC
    • 13:00 UTC → 23:00 UTC
  • 25 September 2023
    • 00:00 UTC → 00:00 UTC (24 Hours)
  • 30 September 2023
    • Deprecated images are removed and will be unavailable

During these times, the images that have been deprecated will result in a failed build as the images will be unavailable. In-app banners and related gpu pages in docs will also be used as additional reminders.

Use this time zone converter for reference

Why This is Happening?

In an effort to align with our image policies, the deprecations are meant to streamline support for this image family. Because CUDA 11+ supports backwards compatibility with the major release version, this allows us to implement the latest supported versions of CUDA while also keeping on term support.

This will alleviate issues with updating tags, allows you to switch between specific versions, and provides compatibility assurances within major releases – resulting in increased reliability.

What’s Next?

Instead of specific versions of CUDA, we will aim to support the last two major releases. At the time of writing, this refers to CUDA 11 and CUDA 12 and they are accessible through the following image slugs:

linux-cuda-11:default
linux-cuda-12:default

An example configuration might be:

test-build:
    machine:
      image: linux-cuda-12:default
    resource_class: gpu.nvidia.medium
    steps:
      - run:
          command: |
            echo "do things"

The following tags will be used to incorporate the latest updates, including the latest CUDA versions prior to being assigned to the more stable default tag. These images are mainly for testing purposes

linux-cuda-11:edge
linux-cuda-12:edge

Resource Classes

We understand the docs are slightly outdated, however, to give a better idea of what resource classes work with these new tags, here is the list of what is compatible:

resource_class: gpu.nvidia.small.multi
resource_class: gpu.nvidia.medium
resource_class: gpu.nvidia.medium.multi
resource_class: gpu.nvidia.large

Policy Overview

These images will include the three most recent versions of CUDA*. To illustrate the new images:

Examples

A major version release – CUDA 12.0:

Version Support
CUDA 12 linux-cuda-12 image added
CUDA 11 No change
CUDA 10 linux-cuda-10 image deprecated

A minor version release – CUDA 11.8:

Version Support
CUDA 11.8 Added to linux-cuda-11
CUDA 11.6 Remains in the image
CUDA 11.4 Remains in the image; becomes “oldest”
CUDA 11.2 Removed from linux-cuda-11

Please refer to the image policy for more specifics

Respectfully,
Jeff Chen

After refactoring image name, CircleCI give me the message

Job was rejected because resource class medium, image linux-cuda-12:default is not a valid resource class

And looking at the documentation doesn’t seem to be updated.
Does someone know when we will get more information about it?

Hi @JonathanLefebvre,

Thank you for bringing this up. I’ve edited the post and given an example configuration that should satisfy the use case as well as a list of compatible resource classes. For reference:

resource_class: gpu.nvidia.small.multi
resource_class: gpu.nvidia.medium
resource_class: gpu.nvidia.medium.multi
resource_class: gpu.nvidia.large

We’ll work on getting the docs updated ASAP

1 Like

Hey @jalex , a clarification question. We have some CircleCI jobs using the ubuntu image names mentioned in “GPU images” section but the resource classes were “medium”, “large” and “arm.medium”. Do we need to update the ubuntu images used in those jobs?

Thanks!

Hi @masterginger, I’m going to edit the post to make it a bit more clear, but you would only be affected/need to change your image if you are using the gpu resource classes. However, I think those are all rather old images so updating them to newer ubuntu ones might be recommended.

You would not need to use the linux-cuda images as these are specific to using GPU enabled jobs