Loading init_perlmutter.sh +1 −2 Original line number Diff line number Diff line #!/bin/bash export LD_LIBRARY_PATH=/global/common/software/m4454/env_muraligm/envs/env_custom/lib/python3.9/site-packages/nvidia/cuda_runtime/lib:/global/common/software/m4454/env_muraligm/envs/env_custom/lib/python3.9/site-packages/cuquantum/lib:/global/common/software/m4454/env_muraligm/envs/env_custom/lib/python3.9/site-packages/cutensor/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/global/common/software/m4454/env_muraligm/envs/qlsa-solver/lib/python3.11/site-packages/nvidia/cuda_runtime/lib:/global/common/software/m4454/env_muraligm/envs/qlsa-solver/lib/python3.11/site-packages/cuquantum/lib:/global/common/software/m4454/env_muraligm/envs/qlsa-solver/lib/python3.11/site-packages/cutensor/lib:/global/common/software/m4454/env_muraligm/envs/qlsa-solver/lib/python3.11/site-packages/nvidia/nvjitlink/lib:$LD_LIBRARY_PATH test_gpu.py +6 −10 Original line number Diff line number Diff line Loading @@ -6,8 +6,7 @@ Reference: https://qiskit.org/ecosystem/aer/howtos/running_gpu.html from qiskit import QuantumCircuit from qiskit_aer import AerSimulator from qiskit.circuit.library import QuantumVolume from qiskit_ibm_runtime import SamplerV2 as Sampler from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager from qiskit import transpile import argparse import time Loading @@ -17,26 +16,23 @@ parser.add_argument("--gpu", default=False, action='store_true', help="Use GPU b parser.add_argument("--gpumultiple", default=False, action='store_true', help="Use multiple GPUs for the backend of Aer simulator.") args = parser.parse_args() # Select backend if args.gpu: backend = AerSimulator(method='statevector', device='GPU') elif args.gpumultiple: backend = AerSimulator(method='statevector', device='GPU', blocking_enable=True, blocking_qubits=18) else: backend = AerSimulator(method='statevector') print(f'Simulator: {backend}') pm = generate_preset_pass_manager(backend=backend, optimization_level=1) # Generate circuit and transpile qubits = args.NUM_QUBITS t = time.time() qc = QuantumVolume(qubits, seed = 0) qc.measure_all() qc = transpile(qc, backend) elpsdt1 = time.time() - t isa_circuit = pm.run(qc) # setup Sampler sampler = Sampler(backend) # Run circuit t = time.time() # Run the job job = sampler.run([isa_circuit]) # Grab results from the job result = job.result() result = backend.run(qc).result() elpsdt2 = time.time() - t print(f'N qubits: {qubits}; GPU: {args.gpu}; multiple-GPU: {args.gpumultiple};\nTime elapsed 1: {int(elpsdt1/60)} min {elpsdt1%60:.2f} sec\nTime elapsed 2: {int(elpsdt2/60)} min {elpsdt2%60:.2f} sec') Loading Loading
init_perlmutter.sh +1 −2 Original line number Diff line number Diff line #!/bin/bash export LD_LIBRARY_PATH=/global/common/software/m4454/env_muraligm/envs/env_custom/lib/python3.9/site-packages/nvidia/cuda_runtime/lib:/global/common/software/m4454/env_muraligm/envs/env_custom/lib/python3.9/site-packages/cuquantum/lib:/global/common/software/m4454/env_muraligm/envs/env_custom/lib/python3.9/site-packages/cutensor/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=/global/common/software/m4454/env_muraligm/envs/qlsa-solver/lib/python3.11/site-packages/nvidia/cuda_runtime/lib:/global/common/software/m4454/env_muraligm/envs/qlsa-solver/lib/python3.11/site-packages/cuquantum/lib:/global/common/software/m4454/env_muraligm/envs/qlsa-solver/lib/python3.11/site-packages/cutensor/lib:/global/common/software/m4454/env_muraligm/envs/qlsa-solver/lib/python3.11/site-packages/nvidia/nvjitlink/lib:$LD_LIBRARY_PATH
test_gpu.py +6 −10 Original line number Diff line number Diff line Loading @@ -6,8 +6,7 @@ Reference: https://qiskit.org/ecosystem/aer/howtos/running_gpu.html from qiskit import QuantumCircuit from qiskit_aer import AerSimulator from qiskit.circuit.library import QuantumVolume from qiskit_ibm_runtime import SamplerV2 as Sampler from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager from qiskit import transpile import argparse import time Loading @@ -17,26 +16,23 @@ parser.add_argument("--gpu", default=False, action='store_true', help="Use GPU b parser.add_argument("--gpumultiple", default=False, action='store_true', help="Use multiple GPUs for the backend of Aer simulator.") args = parser.parse_args() # Select backend if args.gpu: backend = AerSimulator(method='statevector', device='GPU') elif args.gpumultiple: backend = AerSimulator(method='statevector', device='GPU', blocking_enable=True, blocking_qubits=18) else: backend = AerSimulator(method='statevector') print(f'Simulator: {backend}') pm = generate_preset_pass_manager(backend=backend, optimization_level=1) # Generate circuit and transpile qubits = args.NUM_QUBITS t = time.time() qc = QuantumVolume(qubits, seed = 0) qc.measure_all() qc = transpile(qc, backend) elpsdt1 = time.time() - t isa_circuit = pm.run(qc) # setup Sampler sampler = Sampler(backend) # Run circuit t = time.time() # Run the job job = sampler.run([isa_circuit]) # Grab results from the job result = job.result() result = backend.run(qc).result() elpsdt2 = time.time() - t print(f'N qubits: {qubits}; GPU: {args.gpu}; multiple-GPU: {args.gpumultiple};\nTime elapsed 1: {int(elpsdt1/60)} min {elpsdt1%60:.2f} sec\nTime elapsed 2: {int(elpsdt2/60)} min {elpsdt2%60:.2f} sec') Loading