Comece agora: compute GPU sem servidor com GPUs A10
Este Notebook demonstra como usar compute GPU serverless para executar cargas de trabalho de GPU em GPUs A10 diretamente do Databricks Notebook. Você aprenderá como usar a biblioteca Python serverless_gpu para executar funções em uma ou várias GPUs para treinamento distribuído.
compute GPU sem servidor fornece acesso sob demanda a recursos de GPU sem a necessidade de gerenciar clusters. A biblioteca serverless_gpu permite a execução perfeita de cargas de trabalho de GPU com provisionamento automático de recursos. Para saber mais, consulte a documentação API de GPU sem servidor.
Requisitos
Antes de executar este Notebook, conecte-o à compute GPU sem servidor:
- No seletor compute , selecione GPU sem servidor .
- Na tab Ambiente , no lado direito, selecione A10 como Acelerador.
Verifique a conexão da GPU
Execute o comando nvidia-smi para confirmar que seu notebook está conectado a uma GPU A10 e view as especificações da GPU.
%sh nvidia-smi
Wed Jan 14 19:31:33 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.144.03 Driver Version: 550.144.03 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA A10G On | 00000000:00:1E.0 Off | 0 |
| 0% 22C P8 23W / 300W | 1MiB / 23028MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| No running processes found |
+-----------------------------------------------------------------------------------------+
Importe a biblioteca de GPUs serverless .
Importe a biblioteca serverless_gpu para acessar a API para executar funções em recursos de GPU.
import serverless_gpu
Warning: serverless_gpu is in Beta. The API is subject to change.
Criar uma função distribuída
Use o decorador @distributed para criar um DistributedFunction que seja executado no recurso da GPU. Este decorador aceita os seguintes parâmetros:
gpus(int): Número de GPUs a serem usadasgpu_type(Opcional[União[GPUType, str]]): O tipo de GPU a ser usado (obrigatório se remote=True). Tipos disponíveis: 'a10', 'h100'remote(bool): Indica se a função deve ser executada em GPUs remotas (o padrão é False).run_async(bool): Indica se a função deve ser executada de forma assíncrona (o padrão é False).
from serverless_gpu import distributed
@distributed(gpus=1, gpu_type='a10', remote=True)
def foo(x):
print('hello_world', x)
return x
foo
DistributedFunction(gpus=1, gpu_type=GPUType.A10, remote=True, run_async=False, func=foo)
execução da função distribuída
Inicie o DistributedFunction usando o método .distributed() . Passe todos os argumentos necessários como parâmetros nomeados.
foo.distributed(x=5)
[5]
Treinamento distribuído com múltiplas GPUs
Você pode executar várias GPUs A10 em paralelo para cargas de trabalho de treinamento distribuídas. O módulo serverless_gpu.runtime fornece funções auxiliares para gerenciar a execução distribuída:
get_local_rank()Obtenha a classificação local da GPU atual.get_global_rank()Obtenha a classificação global em todas as GPUs.get_world_size()Obtenha o número total de GPUs.
Observação: A execução em vários nós, até um máximo de 70 nós, pode demorar até 20 minutos para iniciar, sendo que cada nó subsequente demora mais tempo. Para execuções em larga escala, você poderá experimentar tempos de espera mais longos ou falhas ocasionais.
# The runtime module includes helpers to be used during the GPU runtime (i.e. in the function body).
# These helpers include get_local_rank, get_global_rank, get_world_size
from serverless_gpu import runtime as rt
@distributed(gpus=3, gpu_type='a10', remote=True)
def multi_a10():
return rt.get_global_rank(), rt.get_world_size()
multi_a10.distributed() # returns a list, one element per GPU
[(0, 3), (1, 3), (2, 3)]
Próximos passos
Saiba mais sobre compute GPU serverless :
- Documentação API de GPU sem servidor
- Melhores práticas para computede GPU sem servidor
- Solucionar problemas em computeGPU serverless
- Treinamento distribuído com múltiplas GPUs e múltiplos nós