compose icon indicating copy to clipboard operation
compose copied to clipboard

Feature Request: Assign replicas to GPUs

Open kheyer opened this issue 9 months ago • 3 comments

Description

I have a service that runs on a single GPU. If I have multiple GPUs available, I would like to create one replica of this service for each GPU available.

Currently, I can only do this by explicitly creating the service multiple times in the docker-compose file and changing the device_ids section of the resources

  resources:
    reservations:
      devices:
      - driver: "nvidia"
        device_ids: ["0"]
        capabilities: [gpu]

Having to create 8 near-identical replicas of the same service in the config file is unwieldy.

I would like to specify the service once and set the replicas with

replicas: ${GPU_COUNT}

However this requires some way for each replica to know what GPU to use. My understanding is currently there is no way to do this, and there isn't a good way to go off a "replica index" for each container (see https://github.com/docker/compose/issues/9153).

Some method of mapping replicas of a service to different GPUs would be helpful.

kheyer avatar May 30 '24 02:05 kheyer