Support Metal as device

Passed in 5m 53s
:pipeline:buildkite-agent pipeline upload
Waited 33s
Ran in 5s
initializeecho "--- Instantiate project" && julia --project=test -e 'using Pkg; Pkg.develop(;path="."); Pkg.add("CUDA"); Pkg.add("MPI"); Pkg.instantiate(;verbose=true); Pkg.precompile(;strict=true)' && julia --project=test -e 'using CUDA; CUDA.precompile_runtime()' && julia --project=test -e 'using Pkg; Pkg.status()'
Waited 57s
Ran in 3m 16s
馃捇 testsjulia --project=test test/runtests.jl
Waited 44s
Ran in 7s
馃捇 tests MPIsrun julia --project=test test/runtests.jl
Waited 44s
Ran in 11s
馃捇 threaded testsjulia --threads 4 --project=test test/runtests.jl
Waited 44s
Ran in 7s
馃捇 threaded tests MPIsrun julia --threads 4 --project=test test/runtests.jl
Waited 44s
Ran in 11s
馃幋 testsjulia --project=test test/runtests.jl
Waited 44s
Ran in 46s
馃幋 tests MPIsrun julia --project=test test/runtests.jl
Waited 44s
Ran in 53s
Total Job Run Time: 5m 35s