Skip to content

Commit 1e76728

Browse files
authored
Merge pull request #253 from JuliaGPU/jps/device-id-methods
device: Add device_id method
2 parents 7b2d891 + bac70b6 commit 1e76728

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/highlevel.jl

+9
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,15 @@ Sets the default device to `AMDGPU.devices(kind)[idx]`. See
3737
default_device_id!(idx::Integer, kind::Symbol=:gpu) =
3838
default_device!(devices(kind)[idx])
3939

40+
"""
41+
device_id(device::ROCDevice, kind::Symbol=:gpu) -> Int
42+
43+
Returns the numerical device ID for `device`. See [`default_device_id`](@ref)
44+
for details on the numbering semantics.
45+
"""
46+
device_id(device::ROCDevice, kind::Symbol=:gpu) =
47+
something(findfirst(dev->dev === device, devices(kind)))
48+
4049
"""
4150
device_type(device::ROCDevice) -> Symbol
4251

test/hsa/device.jl

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1-
@testset "Agent" begin
1+
@testset "Devices" begin
2+
@testset "Device IDs" begin
3+
for kind in (:cpu, :gpu)
4+
devices = AMDGPU.devices()
5+
for (idx,device) in enumerate(devices)
6+
@test AMDGPU.device_id(device) == idx
7+
end
8+
end
9+
end
10+
211
@testset "Default selection" begin
312
agent = AMDGPU.default_device()
413
@test agent !== nothing

0 commit comments

Comments
 (0)