AlgebraicJulia / Decapodes.jl

A framework for composing and simulating multiphysics systems
https://algebraicjulia.github.io/Decapodes.jl/dev/
MIT License
46 stars 14 forks source link

Support GPU Simulations #225

Closed GeorgeR227 closed 1 month ago

GeorgeR227 commented 2 months ago

Adding CUDA support into Decapodes. This adds a code target keyword into gensim that allows a user to output code that can target either the CPU or a Nvidia GPU with CUDA. This is done in a CUDA extension file.

GeorgeR227 commented 2 months ago

Assuming that https://github.com/AlgebraicJulia/CombinatorialSpaces.jl/pull/75 isn't altered in any drastic way, and it shouldn't be at this point, this PR is ready for review.

GeorgeR227 commented 2 months ago

@lukem12345 I've fixed the most relevant issues you brought up. I don't want merging this branch to get delayed behind examples, when there are other examples anyway that are old/broken, or documentation, that doesn't work with CUDA anyway, so I've removed any with issues and made a new branch with them we can fix and merge later.

lukem12345 commented 1 month ago

Something went wonky with that last rebase. It looks like a whole lot of commits happened twice @GeorgeR227

GeorgeR227 commented 1 month ago

Yeah I'm looking at the history now and it seems like there have been some duplicated commits from even further back, I think from the last rebase. Take note of 3fd418e and 659ff27. I'm thinking the history is messed up because it was already tangled with main's history. Notice that these new commits begin after the latest commit in main, namely 05376d9.

GeorgeR227 commented 1 month ago

@lukem12345 All tests are passing, including CUDA tests on HiPerGator. While the docs are failing I think this has been an ongoing issue and so should be addressed in the next PR.