-
Notifications
You must be signed in to change notification settings - Fork 34
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 JLArrays, Metal and AMDGPU extensions and S kwarg tests #332
Conversation
I've also added some initial tests that check if the S keyword is correctly handled for the basic constructors and the special operators. I've also found a small bug where the S keyword was discarded for the opEye operator. Per default the tests run on JLArrays, in theory it would also be possible to let the test run on CUDA with the buildkite setup |
@nHackel: I added Metal support and the Metal tests should only run on the platform arm64. I have not tested though. I needed to disable the Float64 tests and the |
This is an MWE for the Metal issue:
@maleadt: Is this a potential Metal issue/limitation and should I file am an issue in Metal.jl? |
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.
Many thanks for all this! Just a simple comment for now.
test/runtests.jl
Outdated
@@ -15,3 +18,4 @@ include("test_deprecated.jl") | |||
include("test_normest.jl") | |||
include("test_diag.jl") | |||
include("test_chainrules.jl") | |||
include("test_S_kwarg.jl") |
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.
Maybe this file should be under test/gpu
for consistency with the Nvidia tests that are already there. I’ll see if I can add a buildkite pipeline for AMD GPUs.
That looks like JuliaGPU/Metal.jl#332 |
Hello @dpo, I've restructured the GPU related tests into the GPU folder. The normal CI still executes an S keyword test with JLArrays. The metal test is still only run on the appropriate system. I've also added a test for AMDGPUs as well as a buildkite step. Both AMD and Nvidia test now also run the S keyword test |
Project.toml
Outdated
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" | ||
CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" | ||
LDLFactorizations = "40e66cde-538c-5869-a4ad-c39174c6795b" | ||
JLArrays = "27aeb0d3-9eb9-45fb-866b-73c2ecf80fcb" | ||
Metal = "dde4c033-4e86-420c-a63e-0dd931031962" |
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.
I'm not sure how to make this work. Since we added CUDA to [extras]
, I can't test this package on my Mac any more. I think it's only safe to add JLArrays in here, isn't it?
Nevermind, it was a Manifest issue.
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.
So sorry for the long delay. Many thanks for your contribution! Here are two very minor changes that I suggest for consistency.
This PR adds a weak extension for JLArrays. These arrays are a CPU-reference-implementation of GPUArrays and allow for easier testing of GPU handling. The weak extension is structured similar to the CUDA extension
We will also add extensions for Metal.jl and AMDGPU.jl. Metal.jl and JLArrays can be tested, AMDGPU.jl would require buildkite with an AMD card.