Skip to content

Test cases hang when creating CUDA streams #15

@Minamoto25

Description

@Minamoto25

When testing LibreCuda with a 4090 GPU, each test case in the tests folder hangs when creating CUDA streams. The call stack obtained using gdb is as follows:

(gdb) r
Starting program: /home/minamoto/LibreCuda/build/tests/memcopy/test_memcopy 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Device count: 2
^C
Program received signal SIGINT, Interrupt.
0x00007ffff7c35c9b in sched_yield () at ../sysdeps/unix/syscall-template.S:120
120     ../sysdeps/unix/syscall-template.S: No such file or directory.
(gdb) bt
#0  0x00007ffff7c35c9b in sched_yield () at ../sysdeps/unix/syscall-template.S:120
#1  0x000055555558ee5f in __gthread_yield () at /usr/include/x86_64-linux-gnu/c++/10/bits/gthr-default.h:693
#2  0x000055555558eeee in std::this_thread::yield () at /usr/include/c++/10/thread:379
#3  0x000055555558c5e2 in NvCommandQueue::signalWaitCpu (this=0x5555555cddb0, pSignal=0x100f402000, 
    signalTarget=1) at /home/minamoto/LibreCuda/driverapi/src/cmdqueue.cpp:351
#4  0x000055555558c229 in NvCommandQueue::awaitExecution (this=0x5555555cddb0)
    at /home/minamoto/LibreCuda/driverapi/src/cmdqueue.cpp:274
#5  0x000055555558ba1c in NvCommandQueue::initializeQueue (this=0x5555555cddb0)
    at /home/minamoto/LibreCuda/driverapi/src/cmdqueue.cpp:154
#6  0x0000555555562981 in libreCuStreamCreate (pStreamOut=0x7fffffffdb68, flags=0)
    at /home/minamoto/LibreCuda/driverapi/src/librecuda.cpp:1388
#7  0x0000555555559e26 in main () at /home/minamoto/LibreCuda/tests/memcopy/main.cpp:30

Environment:

  • GPU driver version: 535.183.01
  • Operating System: Ubuntu 22.04.4 LTS, kernel version: 5.15.0-119-generic
  • GPU Model: Two 4090 GPUs

Steps to Reproduce:

  • Build LibreCuda
  • change directory to build/tests/memcopy and run the test case
  • Observe that test case hangs when creating CUDA streams

Is it possible that this is due to differences in the ioctl command for creating streams between the Ada and Ampere architectures?

I would appreciate your assistance with this matter.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions