Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nvidia RTX 50 series removes 32-bit CUDA and 32-bit OpenCL support #6125

Open
Ageless93 opened this issue Feb 27, 2025 · 6 comments
Open

Nvidia RTX 50 series removes 32-bit CUDA and 32-bit OpenCL support #6125

Ageless93 opened this issue Feb 27, 2025 · 6 comments

Comments

@Ageless93
Copy link
Contributor

Describe the bug

As per https://boinc.berkeley.edu/forum_thread.php?id=15450

According to https://www.notebookcheck.net/Strange-GeForce-RTX-50-series-benchmark-issues-solved-but-new-problem-for-gamers-arises.967614.0.html , Nvidia RTX 50 series GPUs remove support for 32-bit CUDA and 32-bit OpenCL. It is possible that both BOINC server software and BOINC client software need to be made aware of this lack of 32-bit CUDA support and 32-bit OpenCL support so that 32-bit CUDA tasks and 32-bit OpenCL tasks are not sent to clients with GPUs that cannot handle them.

I am making this thread after making a thread about BOINC clients because I realized that BOINC server software and not just BOINC client software probably need to be modified to take into account the breaking changes that removing 32-bit CUDA and 32-bit OpenCL support are.

Steps to reproduce

No response

Expected behavior

No response

Screenshots

No response

System information

No response

Additional context

No response

@davidpanderson
Copy link
Contributor

The client detects GPUs using CUDA and OpenCL,
so if these are missing it won't detect them.

@AenBleidd
Copy link
Member

@davidpanderson, I believe here is the concern that the user might have CUDA/OpenCL x64 drivers installed, bit receive from the server 32-bit application for CUDA that will fail because there is no support of 32-bit applications by the CUDA driver anymore.

It need to be investigated if we can easily detect the presence of x86 and/or x64 CUDA/OpenCL drivers and report this to the server.

@AenBleidd AenBleidd added this to the Client/Manager milestone Feb 27, 2025
@Ageless93
Copy link
Contributor Author

@davidpanderson, I believe here is the concern that the user might have CUDA/OpenCL x64 drivers installed, bit receive from the server 32-bit application for CUDA that will fail because there is no support of 32-bit applications by the CUDA driver anymore.

Yes, that's what I understood as well. It's not about the drivers being 32bit or 64bit, just about the project science applications being sent to the GPU being 32bit, which is being deprecated.

@SETIguy
Copy link
Contributor

SETIguy commented Feb 27, 2025 via email

@jnv11
Copy link

jnv11 commented Feb 28, 2025

I am the one who created the initial BOINC forum posts about this issue. I had to ask someone else to create this issue in Github because I did not know how to properly classify and prioritize this issue.

Most CUDA-capable Nvidia GPUs with the known exception of Blackwell/RTX 50 series are capable of running 32-bit CUDA and 32-bit OpenCL code in 64-bit OSes, so sending 32-bit CUDA and 32-bit OpenCL tasks to 64-bit hosts with those GPUs should be fine for those GPUs. Nvidia has stated that older GPUs will still be able to run 32-bit CUDA in 64-bit environments as seen in https://nvidia.custhelp.com/app/answers/detail/a_id/5615/~/support-plan-for-32-bit-cuda . That document leaves out older GPUs that Nvidia has dropped support for such as GPUs based on the Tesla, Fermi, and Kepler microarchitectures that support 32-bit CUDA within 64-bit OSes.

However, neither Blackwell nor Hopper support 32-bit CUDA nor 32-bit OpenCL. I found that Hopper cannot run 32-bit CUDA according to https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/ .

I have not yet been able to find information about whether Nvidia's Hopper microarchitecture can support 32-bit CUDA or OpenCL.

I can think of several solutions for this problem.

One solution is to refuse to send 32-bit Nvidia tasks to all 64-bit clients. That would quickly cut a huge chunk of older 64-bit Nvidia users' compute ability from projects that do not have 64-bit Nvidia applications.

Another solution is to create a whitelist of 32-bit compatible Nvidia GPUs or microarchitectures. This would allow 32-bit Nvidia tasks to be sent to 64-bit clients with old enough Nvidia GPUs to run 32-bit GPGPU tasks. This solution would not be good if Nvidia reverses course and restores 32-bit CUDA support to current or future Nvidia GPUs because the whitelist would need to be expanded before 32-bit tasks could be sent to the newer GPUs, but this problem would not cause computation errors for the GPUs with restored 32-bit capabilities.

Another solution is to create a blacklist of 32-bit GPGPU incompatible Nvidia GPUs or microarchitectures. This would also allow 32-bit Nvidia tasks to be sent to 64-bit clients with old enough Nvidia GPUs. However, updating the blacklist would be a problem if Nvidia keeps releasing newer GPUs or microarchitectures that cannot run 32-bit GPGPU tasks and cause computation errors due to task crashes or failures to run when these GPUs enter the market until the blacklist is updated to exclude these GPUs.

@davidpanderson
Copy link
Contributor

As Eric points out: if projects make both 32- and 64-bit versions,
the server will learn which ones work on which machines
(and if both work, which one is faster).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Backlog
Development

No branches or pull requests

5 participants