Questo documento spiega come creare un'istanza di macchina virtuale (VM) che utilizza un tipo di macchina delle serie di macchine A3 High, A3 Mega, A3 Edge, A2 e G2. Puoi creare queste VM come VM on demand oppure puoi ridurre i costi creando VM spot o VM con avvio flessibile. Per scoprire di più sulla creazione delle VM con GPU collegate, consulta la Panoramica della creazione di un'istanza con GPU collegate.
Prima di iniziare
- Per esaminare le limitazioni e i passaggi preliminari aggiuntivi per la creazione di istanze con GPU collegate, ad esempio la selezione di un'immagine sistema operativo e il controllo della quota di GPU, consulta la Panoramica della creazione di un'istanza con GPU collegate.
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso a Google Cloud servizi e API. Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
- Set a default region and zone.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il seguente comando:
gcloud init
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare VM, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene le autorizzazioni necessarie per creare VM. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare VM sono necessarie le seguenti autorizzazioni:
-
compute.instances.create
sul progetto -
Per utilizzare un'immagine personalizzata per creare la VM:
compute.images.useReadOnly
sull'immagine -
Per utilizzare uno snapshot per creare la VM:
compute.snapshots.useReadOnly
sullo snapshot -
Per utilizzare un template di istanza per creare la VM:
compute.instanceTemplates.useReadOnly
sul template di istanza -
Per specificare una subnet per la VM:
compute.subnetworks.use
sul progetto o sulla subnet scelta -
Per specificare un indirizzo IP statico per la VM:
compute.addresses.use
sul progetto -
Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC:
compute.subnetworks.useExternalIp
sul progetto o sulla subnet scelta -
Per assegnare una rete legacy alla VM:
compute.networks.use
sul progetto -
Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete legacy:
compute.networks.useExternalIp
sul progetto -
Per impostare i metadati dell'istanza VM per la VM:
compute.instances.setMetadata
sul progetto -
Per impostare i tag per la VM:
compute.instances.setTags
sulla VM -
Per impostare le etichette per la VM:
compute.instances.setLabels
sulla VM -
Per impostare un service account che la VM possa utilizzare:
compute.instances.setServiceAccount
sulla VM -
Per creare un nuovo disco per la VM:
compute.disks.create
sul progetto -
Per collegare un disco esistente in modalità di sola lettura o di lettura e scrittura:
compute.disks.use
sul disco -
Per collegare un disco esistente in modalità di sola lettura:
compute.disks.useReadOnly
sul disco
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Crea una VM con GPU collegate
Puoi creare una VM ottimizzata per l'acceleratore A3 High, A3 Mega, A3 Edge, A2 o G2 utilizzando la console Google Cloud , Google Cloud CLI o REST.
Per apportare alcune personalizzazioni alle VM G2, potrebbe essere necessario utilizzare Google Cloud CLI o REST. Consulta le restrizioni di G2.
Console
- Nella console Google Cloud , vai alla pagina Crea un'istanza.
- Specifica un Nome per la VM. Consulta Convenzione di denominazione delle risorse.
- Seleziona una regione e una zona in cui sono disponibili le GPU. Consulta l'elenco delle regioni e zone GPU disponibili.
- Nella sezione Configurazione macchina, seleziona la famiglia
di macchine GPU.
- Completa uno dei seguenti passaggi per selezionare un tipo di macchina predefinita o personalizzata in base alla serie di macchine:
- Per tutte le serie di macchine GPU, puoi selezionare un tipo di macchina predefinita come segue:
- Nell'elenco Tipo di GPU, seleziona il tipo di GPU.
- Per le VM ottimizzate per l'acceleratore A3 High, A3 Mega o A3 Edge, seleziona
NVIDIA H100 80GB
oNVIDIA H100 80GB MEGA
. - Per le VM A2 ottimizzate per l'acceleratore, seleziona
NVIDIA A100 40GB
oNVIDIA A100 80GB
. - Per le VM G2 ottimizzate per l'acceleratore, seleziona
NVIDIA L4
.
- Per le VM ottimizzate per l'acceleratore A3 High, A3 Mega o A3 Edge, seleziona
- Nell'elenco Numero di GPU, seleziona il numero di GPU.
- Nell'elenco Tipo di GPU, seleziona il tipo di GPU.
- Per la serie di macchine G2, puoi selezionare un tipo di macchina personalizzata come segue:
- Nell'elenco Tipo di GPU, seleziona
NVIDIA L4
. - Nella sezione Tipo di macchina, seleziona Personalizzato.
- Per specificare il numero di vCPU e la quantità di memoria per l'istanza, trascina i cursori o inserisci i valori nelle caselle di testo. La console mostra un costo stimato per l'istanza man mano che modifichi il numero di vCPU e la memoria.
- Nell'elenco Tipo di GPU, seleziona
- Per tutte le serie di macchine GPU, puoi selezionare un tipo di macchina predefinita come segue:
- (Facoltativo) La serie di macchine G2 supporta le workstation virtuali (vWS) NVIDIA RTX per i workload grafici. Se prevedi di eseguire workload ad alta intensità di grafica sulla tua VM G2, seleziona Abilita workstation virtuale (NVIDIA GRID).
- Completa uno dei seguenti passaggi per selezionare un tipo di macchina predefinita o personalizzata in base alla serie di macchine:
- Nella sezione Disco di avvio, fai clic su Cambia. Si apre la pagina Configurazione del disco di avvio.
- Nella pagina Configurazione del disco di avvio, segui questi passaggi:
- Nella scheda Immagini pubbliche, scegli un'immagine Compute Engine supportata o Deep Learning VM Images.
- Specifica una dimensione del disco di avvio di almeno 40 GiB.
- Per confermare le opzioni relative al disco di avvio, fai clic su Seleziona.
- (Facoltativo) Configura un modello di provisioning diverso per ridurre i costi. Nella
sezione Opzioni avanzate, in Modello di provisioning delle VM, seleziona
una delle seguenti opzioni:
- Avvio flessibile: per carichi di lavoro di breve durata che possono tollerare un orario di inizio flessibile. Per saperne di più, consulta Informazioni sulle VM con avvio flessibile.
- Spot: per carichi di lavoro a tolleranza di errore che possono essere prerilasciati. Per saperne di più, consulta VM spot.
- (Facoltativo) Nell'elenco Informazioni sulla terminazione delle VM, seleziona cosa succede quando
Compute Engine esegue il prerilascio delle VM spot o quando
le VM flessibili raggiungono la fine della durata di esecuzione:
- Per arrestare la VM durante il prerilascio, seleziona Arresta (valore predefinito).
- Per eliminare la VM durante il prerilascio, seleziona Elimina.
- Per creare e avviare la VM, fai clic su Crea.
gcloud
Per creare e avviare una VM, utilizza il comando
gcloud compute instances create
con i seguenti flag. Le VM con GPU non possono eseguire la migrazione in tempo reale, assicurati di impostare il flag--maintenance-policy=TERMINATE
.I seguenti flag facoltativi sono mostrati nel comando di esempio:
- Il flag
--provisioning-model
. Questo flag imposta il modello di provisioning per la VM. SpecificaSPOT
oFLEX_START
. Se non specifichi un modello, viene utilizzato il modello standard. Per saperne di più, consulta Modelli di provisioning delle istanze Compute Engine. - Il flag
--accelerator
per specificare una workstation virtuale. Le workstation virtuali (vWS) NVIDIA RTX sono supportate solo per le VM G2.
Sostituisci quanto segue:gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --zone=ZONE \ --boot-disk-size=DISK_SIZE \ --image=IMAGE \ --image-project=IMAGE_PROJECT \ --maintenance-policy=TERMINATE \ [--provisioning-model=PROVISIONING_MODEL] \ [--accelerator=type=nvidia-l4-vws,count=VWS_ACCELERATOR_COUNT]
VM_NAME
: il nome della nuova VM.MACHINE_TYPE
: il tipo di macchina selezionato. Scegli una delle seguenti opzioni:- Un tipo di macchina A3.
- Un tipo di macchina A2.
- Un tipo di macchina G2.
Anche i tipi di macchine G2 supportano la memoria personalizzata. La memoria deve essere un multiplo di 1024 MB
e
rientrare nell'intervallo di memoria supportato. Ad esempio, per creare una VM con 4 vCPU e 19 GB di memoria, specifica
--machine-type=g2-custom-4-19456
.
ZONE
: la zona della VM. Questa zona deve supportare il modello di GPU selezionato.DISK_SIZE
: le dimensioni del disco di avvio in GiB. Specifica una dimensione del disco di avvio di almeno 40 GiB.IMAGE
: un'immagine del sistema operativo che supporta le GPU. Se vuoi utilizzare l'immagine più recente in una famiglia di immagini, sostituisci il flag--image
con il flag--image-family
e imposta il relativo valore su una famiglia di immagini che supporta le GPU. Ad esempio:--image-family=rocky-linux-8-optimized-gcp
.
Puoi anche specificare un'immagine personalizzata o delle Deep Learning VM Images.IMAGE_PROJECT
: il progetto di immagini di Compute Engine a cui appartiene l'immagine sistema operativo. Se utilizzi un'immagine personalizzata o delle Deep Learning VM Images, specifica il progetto a cui appartengono queste immagini.PROVISIONING_MODEL
: il modello di provisioning da utilizzare per creare la VM. Puoi specificareSPOT
oFLEX_START
. Se rimuovi il flag--provisioning-model
dal comando, viene utilizzato il modello di provisioning standard.VWS_ACCELERATOR_COUNT
: il numero di GPU virtuali di cui hai bisogno.
REST
Invia una richiesta POST al metodo
instances.insert
. Le VM con GPU non possono eseguire la migrazione in tempo reale, assicurati di impostare il parametroonHostMaintenance
suTERMINATE
. Sostituisci quanto segue:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "projects/PROJECT_ID/zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "type": "PERSISTENT", "initializeParams": { "diskSizeGb": "DISK_SIZE", "sourceImage": "SOURCE_IMAGE_URI" }, "boot": true } ], "name": "VM_NAME", "networkInterfaces": [ { "network": "projects/PROJECT_ID/global/networks/NETWORK" } ], "scheduling": { "onHostMaintenance": "terminate", ["automaticRestart": true] }, }
VM_NAME
: il nome della nuova VM.PROJECT_ID
: il tuo ID progetto.ZONE
: la zona della VM. Questa zona deve supportare il modello di GPU selezionato.MACHINE_TYPE
: il tipo di macchina selezionato. Scegli una delle seguenti opzioni:- Un tipo di macchina A3.
- Un tipo di macchina A2.
- Un tipo di macchina G2.
Anche i tipi di macchine G2 supportano la memoria personalizzata. La memoria deve essere un multiplo di 1024 MB
e
rientrare nell'intervallo di memoria supportato. Ad esempio, per creare una VM con 4 vCPU e 19 GB di memoria, specifica
--machine-type=g2-custom-4-19456
.
PROVISIONING_MODEL
: (facoltativo) il modello di provisioning per la VM. SpecificaSPOT
oFLEX_START
. Se non specifichi un modello, viene utilizzato il modello di provisioning standard. Per saperne di più, consulta Modelli di provisioning delle istanze Compute Engine.SOURCE_IMAGE_URI
: l'URI dell'immagine o della famiglia di immagini specifica che vuoi utilizzare. Ad esempio:- Immagine specifica:
"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
- Famiglia di immagini:
"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"
- Immagine specifica:
DISK_SIZE
: le dimensioni del disco di avvio in GB. Specifica una dimensione del disco di avvio di almeno 40 GB.NETWORK
: la rete VPC che vuoi utilizzare per la VM. Puoi specificare "default" per utilizzare la rete predefinita.
- Per ridurre i costi, puoi specificare un modello di provisioning diverso aggiungendo il campo
"provisioningModel": "PROVISIONING_MODEL"
all'oggettoscheduling
nella richiesta. Se specifichi di creare VM spot, i campionHostMaintenance
eautomaticRestart
vengono ignorati."scheduling": { "onHostMaintenance": "terminate", "provisioningModel": "PROVISIONING_MODEL" }
- Per le VM G2, sono supportate le workstation virtuali (vWS) NVIDIA RTX. Per
specificare una workstation virtuale, aggiungi l'opzione "guestAccelerators" alla
richiesta.
Sostituisci
VWS_ACCELERATOR_COUNT
con il numero di GPU virtuali di cui hai bisogno."guestAccelerators": [ { "acceleratorCount": VWS_ACCELERATOR_COUNT, "acceleratorType": "projects/PROJECT_ID/zones/ZONE/acceleratorTypes/nvidia-l4-vws" } ]
Installa i driver
Affinché la VM utilizzi la GPU, devi installare il driver della GPU sulla VM.
Esempi
In questi esempi, la maggior parte delle VM viene creata utilizzando Google Cloud CLI. Tuttavia, puoi anche utilizzare Google Cloud console o REST per creare queste VM.
Gli esempi riportati di seguito mostrano come creare VM utilizzando le seguenti immagini:
+ Deep Learning VM Images. Questo esempio utilizza la VM A2 Standard (
a2-highgpu-1g
). + Immagine Container-Optimized (COS). Questo esempio utilizza una VMa3-highgpu-8g
oa3-edgegpu-8g
. + Immagine pubblica. Questo esempio utilizza una VM G2.COS (A3 Edge/High)
Puoi creare VM
a3-edgegpu-8g
oa3-highgpu-8g
con GPU H100 collegate utilizzando immagini Container-Optimized OS (COS).Per istruzioni dettagliate su come creare queste VM
a3-edgegpu-8g
oa3-highgpu-8g
che utilizzano Container-Optimized OS, consulta Crea una VM A3 in cui è abilitato GPUDirect-TCPX.Immagine sistema operativo pubblica (G2)
Puoi creare VM con GPU collegate che utilizzano un'immagine pubblica disponibile su Compute Engine o un'immagine personalizzata.
Per creare una VM utilizzando l'immagine più recente non deprecata della famiglia di immagini Rocky Linux 8 ottimizzata per Google Cloud che utilizza il tipo di macchina
g2-standard-8
e dispone di una workstation virtuale NVIDIA RTX, completa i seguenti passaggi:Crea la VM. In questo esempio, vengono specificati anche flag facoltativi come il tipo e le dimensioni del disco di avvio.
gcloud compute instances create VM_NAME \ --project=PROJECT_ID \ --zone=ZONE \ --machine-type=g2-standard-8 \ --maintenance-policy=TERMINATE --restart-on-failure \ --network-interface=nic-type=GVNIC \ --accelerator=type=nvidia-l4-vws,count=1 \ --image-family=rocky-linux-8-optimized-gcp \ --image-project=rocky-linux-cloud \ --boot-disk-size=200GB \ --boot-disk-type=pd-ssd
Sostituisci quanto segue:
VM_NAME
: il nome della VMPROJECT_ID
: il tuo ID progetto.ZONE
: la zona della VM.
Installa il driver NVIDIA e CUDA. Per le GPU NVIDIA L4 è richiesta la versione CUDA XX o successiva.
Immagine DLVM (A2)
L'utilizzo delle immagini DLVM è il modo più semplice per iniziare perché queste immagini hanno già i driver NVIDIA e le librerie CUDA preinstallati.
Queste immagini offrono anche ottimizzazioni delle prestazioni.
Per NVIDIA A100 sono supportate le seguenti immagini DLVM:
common-cu110
: driver NVIDIA e CUDA preinstallatitf-ent-1-15-cu110
: driver NVIDIA, CUDA, TensorFlow Enterprise 1.15.3 preinstallatitf2-ent-2-1-cu110
: driver NVIDIA, CUDA, TensorFlow Enterprise 2.1.1 preinstallatitf2-ent-2-3-cu110
: driver NVIDIA, CUDA, TensorFlow Enterprise 2.3.1 preinstallatipytorch-1-6-cu110
: driver NVIDIA, CUDA, Pytorch 1.6
Per ulteriori informazioni sulle immagini DLVM disponibili e sui pacchetti installati sulle immagini, consulta la documentazione su Deep Learning VM.
Crea una VM utilizzando l'immagine
tf2-ent-2-3-cu110
e il tipo di macchinaa2-highgpu-1g
. In questo esempio, vengono specificati flag facoltativi come le dimensioni e l'ambito del disco di avvio.gcloud compute instances create VM_NAME \ --project PROJECT_ID \ --zone ZONE \ --machine-type a2-highgpu-1g \ --maintenance-policy TERMINATE \ --image-family tf2-ent-2-3-cu110 \ --image-project deeplearning-platform-release \ --boot-disk-size 200GB \ --metadata "install-nvidia-driver=True,proxy-mode=project_editors" \ --scopes https://www.googleapis.com/auth/cloud-platform
Sostituisci quanto segue:
VM_NAME
: il nome della VMPROJECT_ID
: il tuo ID progetto.ZONE
: la zona della VM
Il comando di esempio precedente genera anche un'istanza di notebook gestiti dall'utente di Vertex AI Workbench per la VM. Per accedere al notebook, nella console Google Cloud , vai alla pagina Vertex AI Workbench > Notebook gestiti dall'utente.
GPU multi-istanza (solo VM A3 e A2)
Una GPU multi-istanza partiziona una singola GPU NVIDIA H100 o A100 all'interno della stessa VM in un massimo di sette istanze GPU indipendenti. Vengono eseguite contemporaneamente, ognuna con la propria memoria cache, la propria cache e i propri multiprocessori streaming. Questa configurazione consente alla GPU NVIDIA H100 o A100 di offrire una qualità del servizio (QoS) garantita con un utilizzo fino a 7 volte superiore rispetto ai modelli di GPU precedenti.
Puoi creare fino a sette GPU multi-istanza. Per le GPU A100 da 40 GB, a ogni GPU multi-istanza vengono allocati 5 GB di memoria. Con le GPU A100 da 80 GB e H100 da 80 GB, la memoria allocata raddoppia a 10 GB ciascuna.
Per ulteriori informazioni sull'utilizzo delle GPU multi-istanza, consulta la Guida dell'utente per le GPU multi-istanza NVIDIA.
Per creare GPU multi-istanza, completa i seguenti passaggi:
Crea una VM ottimizzata per l'acceleratore A3 High, A3 Mega, A3 Edge o A2.
Attiva i driver GPU NVIDIA.
Attiva le GPU multi-istanza.
sudo nvidia-smi -mig 1
Esamina le forme GPU multi-istanza disponibili.
sudo nvidia-smi mig --list-gpu-instance-profiles
L'output è simile al seguente:
+-----------------------------------------------------------------------------+ | GPU instance profiles: | | GPU Name ID Instances Memory P2P SM DEC ENC | | Free/Total GiB CE JPEG OFA | |=============================================================================| | 0 MIG 1g.10gb 19 7/7 9.62 No 16 1 0 | | 1 1 0 | +-----------------------------------------------------------------------------+ | 0 MIG 1g.10gb+me 20 1/1 9.62 No 16 1 0 | | 1 1 1 | +-----------------------------------------------------------------------------+ | 0 MIG 1g.20gb 15 4/4 19.50 No 26 1 0 | | 1 1 0 | +-----------------------------------------------------------------------------+ | 0 MIG 2g.20gb 14 3/3 19.50 No 32 2 0 | | 2 2 0 | +-----------------------------------------------------------------------------+ | 0 MIG 3g.40gb 9 2/2 39.25 No 60 3 0 | | 3 3 0 | +-----------------------------------------------------------------------------+ .......
Crea la GPU multi-istanza (GI) e le istanze di computing (CI) associate che ti interessano. Puoi creare queste istanze specificando il nome completo o abbreviato del profilo, l'ID profilo o una combinazione di entrambi. Per ulteriori informazioni, consulta la sezione Creazione di istanze GPU.
L'esempio seguente crea due istanze GPU
MIG 3g.20gb
utilizzando l'ID profilo (9
).Viene specificato anche il flag
-C
, che crea le istanze di computing associate per il profilo richiesto.sudo nvidia-smi mig -cgi 9,9 -C
Verifica che le due GPU multi-istanza siano state create:
sudo nvidia-smi mig -lgi
Verifica che siano stati creati sia le GI sia le CI corrispondenti.
sudo nvidia-smi
L'output è simile al seguente:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 525.125.06 Driver Version: 525.125.06 CUDA Version: 12.0 | |-------------------------------+----------------------+----------------------+ | 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 H100 80G... Off | 00000000:04:00.0 Off | On | | N/A 33C P0 70W / 700W | 39MiB / 81559MiB | N/A Default | | | | Enabled | +-------------------------------+----------------------+----------------------+ | 1 NVIDIA H100 80G... Off | 00000000:05:00.0 Off | On | | N/A 32C P0 69W / 700W | 39MiB / 81559MiB | N/A Default | | | | Enabled | +-------------------------------+----------------------+----------------------+ ...... +-----------------------------------------------------------------------------+ | MIG devices: | +------------------+----------------------+-----------+-----------------------+ | GPU GI CI MIG | Memory-Usage | Vol| Shared | | ID ID Dev | BAR1-Usage | SM Unc| CE ENC DEC OFA JPG| | | | ECC| | |==================+======================+===========+=======================| | 0 1 0 0 | 19MiB / 40192MiB | 60 0 | 3 0 3 0 3 | | | 0MiB / 65535MiB | | | +------------------+----------------------+-----------+-----------------------+ | 0 2 0 1 | 19MiB / 40192MiB | 60 0 | 3 0 3 0 3 | | | 0MiB / 65535MiB | | | +------------------+----------------------+-----------+-----------------------+ ...... +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
Passaggi successivi
- Scopri di più sulle piattaforme GPU.
- Aggiungi SSD locali alle tue istanze. I dispositivi SSD locali si accoppiano bene con le GPU quando le tue app richiedono uno spazio di archiviazione ad alte prestazioni.
- Installa i driver GPU.
- Se hai attivato una workstation virtuale NVIDIA RTX, installa un driver per la workstation virtuale.
- Per gestire la manutenzione dell'host GPU, consulta Gestione degli eventi di manutenzione dell'host GPU.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-10-19 UTC.
-