Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Uso de CUDA-Q con Amazon Braket

Modo de enfoque
Uso de CUDA-Q con Amazon Braket - Amazon Braket

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

NVIDIA’s CUDA-Q es una biblioteca de software diseñada para programar algoritmos cuánticos híbridos que combinan CPUs GPUs, y unidades de procesamiento cuántico (QPUs). Proporciona un modelo de programación unificado que permite a los desarrolladores expresar instrucciones clásicas y cuánticas en un solo programa, lo que agiliza los flujos de trabajo. CUDA-Q acelera la simulación cuántica y el tiempo de ejecución de los programas con sus simuladores de CPU y GPU integrados.

Utilización CUDA-Q en Amazon Braket Hybrid Jobs ofrece un entorno informático flexible y bajo demanda. Las instancias computacionales se ejecutan solo mientras dure su carga de trabajo, lo que garantiza que solo pague por lo que utilice. Amazon Braket Hybrid Jobs también ofrece una experiencia escalable. Los usuarios pueden empezar con instancias más pequeñas para la creación de prototipos y las pruebas, y luego ampliarlas a instancias más grandes capaces de gestionar mayores cargas de trabajo para realizar experimentos completos.

El apoyo de Amazon Braket Hybrid Jobs GPUs es esencial para maximizar CUDA-Qes el potencial. GPUs aceleran significativamente las simulaciones de programas cuánticos en comparación con los simuladores basados en CPU, especialmente cuando se trabaja con circuitos con un alto número de cúbits. La paralelización se vuelve sencilla cuando se utiliza CUDA-Q en Amazon Braket Hybrid Jobs. Hybrid Jobs simplifica la distribución del muestreo de circuitos y las evaluaciones observables en varios nodos computacionales. Esta perfecta paralelización de CUDA-Q las cargas de trabajo permiten a los usuarios centrarse más en desarrollar sus cargas de trabajo que en configurar la infraestructura para experimentos a gran escala.

Para empezar, consulte la CUDA-Q ejemplo inicial en Amazon Braket ejemplos Github para crear un contenedor de trabajos que soporte CUDA-Q mediante el método «trae tu propio contenedor» (BYOC). Asegúrese de tener los permisos de IAM adecuados para crear y publicar su CUDA-Q contenedor a un repositorio de Amazon ECR.

El siguiente fragmento de código es un ejemplo de cómo ejecutar un hello-world CUDA-Q programa con Amazon Braket Hybrid Jobs.

image_uri = "<ecr-image-uri>" @hybrid_job(device='local:nvidia/qpp-cpu', image_uri=image_uri) def hello_quantum(): import cudaq # define the backend device=get_job_device_arn() cudaq.set_target(device.split('/')[-1]) # define the Bell circuit kernel = cudaq.make_kernel() qubits = kernel.qalloc(2) kernel.h(qubits[0]) kernel.cx(qubits[0], qubits[1]) # sample the Bell circuit result = cudaq.sample(kernel, shots_count=1000) measurement_probabilities = dict(result.items()) return measurement_probabilities

El ejemplo anterior simula un circuito Bell en un simulador de CPU. Este ejemplo se ejecuta localmente en su portátil o portátil Braket Jupyter. Debido a esta local=True configuración, al ejecutar este script, se iniciará un contenedor en su entorno local para ejecutar el programa CUDA-Q de pruebas y depuración. Una vez finalizadas las pruebas, puede quitar la local=True marca y ejecutar su trabajo. AWS Para obtener más información, consulte Primeros pasos con Amazon Braket Hybrid Jobs.

Si sus cargas de trabajo tienen un alto número de cúbits, una gran cantidad de circuitos o una gran cantidad de iteraciones, puede utilizar recursos informáticos de la CPU más potentes especificando la configuración. instance_config El siguiente fragmento de código muestra cómo configurar el ajuste en el instance_config decorador. hybrid_job Para obtener más información sobre los tipos de instancias compatibles, consulte Configurar la instancia de trabajo híbrida para ejecutar el script. Para ver una lista de tipos de instancias, consulta Tipos de EC2 instancias de Amazon.

@hybrid_job( device="local:nvidia/qpp-cpu", image_uri=image_uri, instance_config=InstanceConfig(instanceType="ml.c5.2xlarge"), ) def my_job_script(): ...

Para cargas de trabajo más exigentes, puede ejecutar sus cargas de trabajo en un CUDA-Q Simulador de GPU. Para habilitar un simulador de GPU, usa el nombre nvidia del backend. El nvidia backend funciona como CUDA-Q Simulador de GPU. A continuación, selecciona un tipo de EC2 instancia de Amazon que admita un NVIDIA GPU. El siguiente fragmento de código muestra el decorador configurado en la GPUhybrid_job.

@hybrid_job( device="local:nvidia/nvidia", image_uri=image_uri, instance_config=InstanceConfig(instanceType="ml.p3.2xlarge"), ) def my_job_script(): ...

Amazon Braket Hybrid Jobs admite simulaciones de GPU en paralelo con CUDA-Q. Puede paralelizar la evaluación de varios observables o varios circuitos para aumentar el rendimiento de su carga de trabajo. Para paralelizar varios observables, realice los siguientes cambios en el script del algoritmo.

Configura la mgpu opción del backend. nvidia Esto es necesario para paralelizar los observables. La paralelización utiliza el MPI para la comunicación entre ellos GPUs, por lo que el MPI debe inicializarse antes de la ejecución y finalizarse después de la ejecución.

A continuación, especifique el modo de ejecución mediante la configuración. execution=cudaq.parallel.mpi El siguiente fragmento de código muestra estos cambios.

cudaq.set_target("nvidia", option="mqpu") cudaq.mpi.initialize() result = cudaq.observe( kernel, hamiltonian, shots_count=n_shots, execution=cudaq.parallel.mpi ) cudaq.mpi.finalize()

En el hybrid_job decorador, especifique un tipo de instancia que aloje varias, GPUs como se muestra en el siguiente fragmento de código.

@hybrid_job( device="local:nvidia/nvidia-mqpu", instance_config=InstanceConfig(instanceType="ml.p3.8xlarge", instanceCount=1), image_uri=image_uri, ) def parallel_observables_gpu_job(sagemaker_mpi_enabled=True): ...

El cuaderno de simulaciones paralelas de Amazon Braket, Github, proporciona end-to-end ejemplos que demuestran cómo ejecutar simulaciones de programas cuánticos en backends de GPU y realizar simulaciones paralelas de observables y lotes de circuitos.

Ejecuta tus cargas de trabajo en ordenadores cuánticos

Tras completar las pruebas del simulador, puede pasar a la ejecución de experimentos en QPUs él. Simplemente cambia el objetivo a una QPU de Amazon Braket, como la IQM, IonQ, or Rigetti dispositivos. El siguiente fragmento de código ilustra cómo establecer el objetivo en IQM Garnet dispositivo. Para ver una lista de las disponibles QPUs, consulta Amazon Braket Console.

device_arn = "arn:aws:braket:eu-north-1::device/qpu/iqm/Garnet" cudaq.set_target("braket", machine=device_arn)

Para obtener más información sobre Amazon Braket Hybrid Jobs, consulte Trabajar con Amazon Braket Hybrid Jobs en la guía para desarrolladores. Para obtener más información CUDA-Q, consulte la CUDA-Q documentación.

En esta página

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.