Skip to content

Introduce variant based on cuDSS#11

Open
fredroy wants to merge 1 commit into
SofaDefrost:mainfrom
fredroy:use_cudss
Open

Introduce variant based on cuDSS#11
fredroy wants to merge 1 commit into
SofaDefrost:mainfrom
fredroy:use_cudss

Conversation

@fredroy

@fredroy fredroy commented Apr 10, 2026

Copy link
Copy Markdown
Contributor

Based on

Add a new CUDASparseCholeskySolver variant using cuDSS: https://developer.nvidia.com/cudss

Needs cuda toolkit 12 and cudss to be installed (not included in the toolkit itself)

Benches: (FEMBAR_CUDASparseCholeskySolver* scenes)

legacy:500 iterations done in 17.3432 s ( 28.8298 FPS)
cudss: 500 iterations done in 4.83628 s ( 103.385 FPS)

same with a bigger grid 76x16x16

legacy:100 iterations done in 55.1384 s ( 1.81362 FPS)
cudss :100 iterations done in 15.4386 s ( 6.47726 FPS)

+ clean up the cmake file.
+
While doing this PR, I noticed the typo on the filenames of the legacy solver "CUDACholeksySparseSolver" 🥴

@alxbilger alxbilger left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I managed to get it working.

For the record:

  • I defined cudss_DIR to C:\Program Files\NVIDIA cuDSS\v0.7\lib\13\cmake\cudss in CMake
  • The API changed from cudss 0.7 to 0.8. It fails to compile with 0.8. Let's merge it for now and upgrade later.
  • The plugin could not be loaded because the cudss DLL was not found. I manually copied it next to the SofaCudaLinearSolver DLL. Maybe something to do with SofaCUDALinearSolverConfig.cmake.in?

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