CUDA-Q Adapter v0.1
|
CUDA-Q (formerly nvq++) provides a programming model that integrates quantum kernels with classical C++ or Python code, enabling hybrid applications. Its compilation flow is built around LLVM, MLIR, and QIR (Quantum Intermediate Representation).
You write code using CUDA-Q's syntax:
To target MQSS via MQP (REST API)
To target MQSS via HPC
A configuration file is a requirement to send additional information to be used at runtime by the MQSS.
The environment variable CUDAQ_MQSS_CONFIGURATION
has to be defined in order to include the configuration file during compilation
The configuration file might contain the following information:
n_qbits
is the number of qubits required by the submitted task.n_shots
is the number of shots required to execute the quantum task. This is annotated by MQSS CUDA-Q Adapter and it is not required to be defined in the configuration file.transpiler_flag
is a flag indicating if the MQSS has to perform transpilation. true
indicates the flag is active, false
otherwise.circuit_files
is a list with the circuit files.submit_time
is the submission time of the task. This is an notated by MQSS CUDA-Q Adapter on each submitted task and it is not required to be defined in the configuration file.circuit_file_type
is the circuit type submitted to the MQSS. The supported file types at the moment are: QASM, Quake, and QIR.preferred_qpu
specifies the selected preferred QPU where the submitted jobs will be executed.restricted_resource_names
specifies the restricted QPUs when submitting a job the MQSS.priority
integer value that specified the priority level of the submitted.user_identity
specifies the identity of the user.optimisation_level
specifies the optimization level. Supported levels: 0, 1, 2, and 3.via_hpc
is a flag specifying if the job is submitted via HPC or MQP. true
indicates the job is submitted via HPC, false
via MQP.In the following an example of a configuration file: