-
Notifications
You must be signed in to change notification settings - Fork 5
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
Add GPU support #75
Add GPU support #75
Conversation
@test all(isapprox.(dec_inv_hodge_star(Val{i}, sd, GeometricHodge())(V_1), Array(dec_inv_hodge_star(Val{i}, sd, GeometricHodge(), Val{:CUDA})(CuArray(V_1))); atol = 1e-10)) | ||
end | ||
for i in 1:1 | ||
for sd in dual_meshes_2D[1:end-1] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The sphere is skipped here because you need to add support for meshes embedded in 3D here before we merge right
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No all meshes work fine. The matrix operators are generated on the CPU, as before, and just ported to the GPU. I skip the sphere here because it's inverse calculation is very unstable for some reason. To make the tests pass I'd need to drop down atol
significantly.
Also added some higher level calls to wedge_product
Now need to change functions to be overloading
The method of handling CUDA functions from the extension should change. For now we have placeholder functions in the main module that are solely meant to be overloaded. This should probably changed to have CUDA overload the regular CPU variants. Also for some reason being in the test environment does not let the extension load, meaning the CUDA tests aren't running.
This seems to be needed since CUDA is really iffy with Int8s.
Also added DEC CUDA matrix checks
Tests run if ran manually. will not work with the ] test command. Should consider test-specific dependencies in the top-level project.toml: https://pkgdocs.julialang.org/v1/creating-packages/#Test-specific-dependencies
Also removed the test/Project.toml and updated the main Project.toml to include extra test dependencies.
This has been replaced to work with the multiple-dispatch method used by other CUDA operators.
No history here
Also only supports Julia 1.10
34acd97
to
4105b3f
Compare
Before we merge, test that all DEC CUDA matrices load properly