Skip to content

Conversation

@iqm-bhoffmann
Copy link
Contributor

Description

Testcase seems to be responsible for an increase of testtime by on hour on some architectures when executed for IQM QA.
Reported by @sacpis in comments to PR #3298. Please see: #3298 (comment)

Testcase seems to be responsible for an increase of testtime of on hour on some architectures when executed for IQM QA.

Signed-off-by: Bernd Hoffmann <[email protected]>
@copy-pr-bot
Copy link

copy-pr-bot bot commented Nov 19, 2025

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@sacpis
Copy link
Collaborator

sacpis commented Nov 19, 2025

/ok to test 53a60ed

Command Bot: Processing...

Copy link
Collaborator

@sacpis sacpis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @iqm-bhoffmann.

@sacpis sacpis enabled auto-merge (squash) November 19, 2025 21:33
@sacpis
Copy link
Collaborator

sacpis commented Nov 19, 2025

We will get to know the test time from this PR itself.

@sacpis
Copy link
Collaborator

sacpis commented Nov 19, 2025

graph_coloring-1.cpp has executed in

137.86s: CUDAQ-Target :: execution/graph_coloring-1.cpp

@sacpis sacpis disabled auto-merge November 19, 2025 22:31
@sacpis
Copy link
Collaborator

sacpis commented Nov 19, 2025

Just tried with Crystal_5 arch, and we see this

+ IQM_QPU_QA=/workspaces/cuda-quantum/targettests/Target/IQM/Crystal_5.txt
+ /workspaces/cuda-quantum/build/targettests/execution/Output/graph_coloring-1.cpp.tmp
+ /usr/local/llvm/bin/FileCheck /workspaces/cuda-quantum/targettests/execution/graph_coloring-1.cpp
graph_coloring-1.cpp.tmp: /usr/local/llvm/include/llvm/ADT/SmallVector.h:294: T& llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::operator[](llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::size_type) [with T = quake::BorrowWireOp; <template-parameter-1-2> = void; llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::reference = quake::BorrowWireOp&; llvm::SmallVectorTemplateCommon<T, <template-parameter-1-2> >::size_type = long unsigned int]: Assertion `idx < size()' failed.
FileCheck error: '<stdin>' is empty.
FileCheck command line:  /usr/local/llvm/bin/FileCheck /workspaces/cuda-quantum/targettests/execution/graph_coloring-1.cpp

github-actions bot pushed a commit that referenced this pull request Nov 19, 2025
@github-actions
Copy link

CUDA Quantum Docs Bot: A preview of the documentation can be found here.

@sacpis
Copy link
Collaborator

sacpis commented Nov 20, 2025

Seems like the issue is only with the arch Crystal_20. Crystal_54 arch works fine. Would you like to update this PR with Crystal_54 arch?

Crystal_54 arch takes around 500 seconds.

587.05s: CUDAQ-Target :: execution/graph_coloring-1.cpp

Or

We can debug the issue with the slowness and add this arch to this test later.

@sacpis sacpis merged commit 2746644 into NVIDIA:main Nov 20, 2025
377 of 378 checks passed
github-actions bot pushed a commit that referenced this pull request Nov 20, 2025
@iqm-bhoffmann
Copy link
Contributor Author

Hello @sacpis ,
I have several results and a conclusion.

  1. As this algorithm uses 8 qubits +1 ancilla it will not work on a 5 qubit architecture. That this fails only with an assert without a clear error indication is certainly something which needs some attention. I think this condition should be checked where the algorithm and the architecture come first together. So the input to the transpilation.
  2. Out quantum engineers explained to me that the algorithm is good for star architectures as it connects all qubits with almost all other qubits. But it is not suitable for our crystal architectures as it results in a huge number of swaps there. As result the job is very long and takes a long time to calculate. This is a systematic problem which cannot be resolved.
  3. I ran the jobs from this algorithm on our Resonance machines for 20 and 54 qubits. But the length of the job exceeds the coherence times and so expectedly the test fails.
  4. While testing yesterday I did not run the correct binary and so my results were all wrong. I now have execution times of 226 s - 262 s for 20 qubit and 153 s - 160 s for 54 qubit. This is running within the docker image on my local machine.

Conclusion: This test should not run on a superconducting crystal architecture. So deactivating it again for the IQM backend is the correct and final solution.

@sacpis
Copy link
Collaborator

sacpis commented Nov 20, 2025

Perfect. Thank you very much @iqm-bhoffmann.
Adding @schweitzpgi fir viz.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants