Help with hardware (CUDA)

"Streaming SIMD Extensions 4.2" where SIMD stands for Single Instruction Multiple Data.

It is older instruction set from the times before Advanced Vector eXtensions 2. This was introduced on 4th Gen Intel Core.

Difference is that most Atom/Celeron/Pentium branded CPUs (all based on Atom core) have only SSE4.2 and lack AVX2 which would be over 2x as powerful for same clock rate. In very latest Atoms Intel introduced AVX2 to Atom also, since the core is same one that have already been in 12th and 13th Gen Core as Efficiency Cores.

Regular Fedora build is AVX2-only, with CUDA support. Then there’s the SSE4.2 build that doesn’t have CUDA support, it is for small Atom/Celeron/Pentium-based devices.

Regular Ubuntu build is SSE4.2/AVX/AVX2/AVX-512 with CUDA support. And then there’s AVX2-only build for Ubuntu as well, which is usually best option for all recent bigger Intel/AMD CPUs.

Debian build is mostly SSE4.2 with limited AVX/AVX2/AVX-512 support and also includes CUDA support. It thus works on wide variety of hardware, but is usually not quite as fast as the AVX2-only builds on Fedora and Ubuntu.

Ok very good and interesting information. I hit that wiki page during my self-study, but couldn’t connect all the dots (“sse” was referring to too many things). Thanks again Jussi!

Can somebody help with CUDA?

I do have new Hqplayer vers. 4.21.1 (arm64) version installed. Now under Ventura (M2) under preferences there is no CUDA option visible.

I would like to use DSD because i do have a Chord TT2. Which options do i have to set to get it?

Thx for your feedback.

CUDA is specific to Nvidia GPUs. There have been no Nvidia GPUs in Macs for a long time. Nvidia and Apple have long ago discontinued their co-operation.

so how do I set the preferences for my chord tt2 dac?

my actual settings are below.


It is best to send 705.6/768k PCM there. That will bypass the first digital filter stage completely.

Sending DSD to Chord DACs is not useful, because they will convert it to 705.6/768k PCM first before upsampling again to DSD-type data.

It is great from you to answer so fast.

Is it possible for you to send me a screenshot how the DSD settings and the preferences setting look like.

Thx in advance

Set DAC Bits to Default. And Default Output Mode to PCM.

Otherwise your settings are probably fine. You can experiment with different filters and noise-shapers/dithers. There’s some guidance provided in the manual that can hopefully help in trying to find settings that best match your use cases.

The driver needs to be CUDA 12.x compatible, >= 525.
CUDA 12.2 Release Notes (nvidia.com)

Hi,

I’m trying to get CUDA to work with HQPlayer embedded on the laptop I got for free from work, which has an NVIDIA Quadro M1200 GPU.

I’m running Arch Linux and installed the AUR package and all the downgrades required to run HQPlayer Embedded. When I set cuda=0 in the xml, everything works as expected.

When cuda is set to 1, however, I don’t get any sound.

Everything else looks perfectly ok: nvidia-smi shows hqplayerd in C mode, 16% GPU is used, no errors in the logs, even the DAC, which is connected to an NAA running on a Pi4, shows the expected DSD 22 MHz rate. But it stays silent, no sound at all.

NVIDIA driver version is 555.58.02, CUDA version 12.5. HQPlayer Embedded 5.6.3 x64 AVX2 build. i7-7820HQ CPU.

Any hints about what I might be doing wrong?

Does any of the lower rates work fine? Which filter/modulator are you using? Anything else enabled, such as EQ/convolution/DAC corrections?

I only tried DSD256 with the same outcome. Using poly-sinc-gauss-long with ASDM5EC-light with 44.1/16 content streamed from Roon, and nothing else was active.

I’m completely new to CUDA—is there anything I can do to check if that side of the equation is correctly installed and works at all? I literally don’t know anything at all about CUDA, never even had NVIDIA before, and only found nvidia-smi in this thread here. :slight_smile:

On HQPlayer Embedded web interface front page, during playback the offload status is shown.

But if nvidia-smi shows HQPlayer process with “C” and some RAM usage and overall load, then it is very likely at least theoretically working.

But it could be a bug in Nvidia drivers, since it is rather old GPU generation (Maxwell, GM1xx) with compute capability 5.0, while current CUDA and HQPlayer assumes minimum 5.2. Wouldn’t be first time… Or it could be some compatibility issue with the kernel/driver/userspace, since Nvidia doesn’t officially support Arch Linux.

I tested a bit more today. Interestingly, I got some sound sometimes this time, a throbbing sound that changed pitch and speed with output sample rate when I tried to upsample in PCM, but stayed the same for different rates in SDM. Later, there was no sound at all again – not sure why or what the difference between the attempts was.

To test CUDA, after some fiddling with the g++ compiler version, I now managed to compile NVIDIA’s CUDA samples. I ran make test, which showed no errors (but ran only a few tests, actually), and I randomly ran a few of the compiled sample programs without knowing what I do, but everything seemed to work correctly.

Are there some NVIDIA sample programs that relate especially to what HQPlayer does? Is there anything else I could test?

Thanks!



I am testing my first GPU card! Is everything looking ok? Anything that I am missing to enable will be appreciated

1 Like

It is possible that in some cases it is dropping out so much that DAC stays muted all the time.

First please check that you have any convolution/speaker/matrix processing disabled. Set filter to poly-sinc-short-lp-2s and modulator to ASDM5. And check if this produces any reasonable audio with multicore=“1” cuda=“1”.

Yes, looks fine to me!

1 Like

Thanks for your tips, but unfortunately, it still doesn’t work.

What I tried today:

  • Updated to HQPlayer Embedded 5.7.0
  • Did all tests with poly-sinc-short-lp-2s and ASDM5. nvidia-smi shows a roughly halved GPU usage compared to poly-sinc-gauss-long with ASDM5EC-light, but still no sound in SDM.
  • Set multicore from “auto” to “1”. Convolution/speaker/matrix processing was never switched on (but I checked to be sure they are really disabled).
  • Downgraded NVIDIA drivers to 550.90.07. nvidia-smi showed CUDA version 12.4. Same result.
  • Used LTS kernel (6.6.40) instead of the current one. Same result.
  • Tried to downgrade NVIDIA drivers to 545.29.06 or 550.54.14, but the kernel modules won’t build–probably related either to kernel version or to gcc version, but I won’t dig in any further there.
  • The oldest NVIDIA driver version that works is 550.67, CUDA version 12.4. Same result.
  • When I switch to PCM, I hear a buzzing sound at 384 kHz that becomes slower and lower in pitch with lower rates. Inaudible at 768 kHz, and in SDM there’s no sound, either. (I’m now wondering if I ever heard anything in SDM. If yes, I can’t reproduce it anymore.)
  • The M1200 card has CUDA capability 5.0. Is that enough for HQPlayer?
  • How would the new GPU selection / multi GPU features work? Could they help or are they completely unrelated?

That’s all I could think of doing, short of installing Ubuntu, which might be the next step if you think that might help. Or do you have any other suggestions?

Thanks a lot for your help!

And it is not useful, since CUDA will just fall off if the driver is too old. Minimum required driver for 5.7.0 is 525.60.13. This moves as Nvidia releases updates to the CUDA framework.

Current build of HQPlayer is for >= 5.2 as stated on the web page. Although I don’t have anything that old in use anymore, so I cannot verify. Oldest I have in use is RTX 2080 Founder’s Edition.

Ok, thanks, I didn’t see that requirement on the homepage. So it will probably not work.

OTOH, according to the two tables here, the only difference between 5.0 and 5.2 seems to be that 5.2 offers 96K of shared memory per SM (whatever SM is), while 5.0 provides only 64K. However, capabilities 5.3, 6.0, 6.2, and 7.5 only provide 64K, too.

I also read in a thread I stumbled over yesterday that for a while, some Python CUDA lib required CUDA capabilities 5.2, which according to an NVIDIA dev didn’t make sense at all, and the requirement was later reduced to 5.0.

That isn’t supposed to imply that the 5.2 requirement for HQPlayer doesn’t make sense, either, I’m anything but a CUDA expert and don’t know which other functions might be hidden in 5.2 somewhere else.

I’ll download the bootable image next, not sure why I didn’t have that idea earlier. :slight_smile: That will be a simple test to see if it works at all. I don’t know if I’ll get to that today, though, might be a few days. Or wait, does that image even contain NVIDIA drivers?

Thanks!