Skip to content

Commit 94090c4

Browse files
committed
[KA] support unified memory API
1 parent 53f450a commit 94090c4

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/OpenCLKernels.jl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,15 @@ export OpenCLBackend
1717
struct OpenCLBackend <: KA.GPU
1818
end
1919

20-
KA.allocate(::OpenCLBackend, ::Type{T}, dims::Tuple) where T = CLArray{T}(undef, dims)
21-
KA.zeros(::OpenCLBackend, ::Type{T}, dims::Tuple) where T = OpenCL.zeros(T, dims)
22-
KA.ones(::OpenCLBackend, ::Type{T}, dims::Tuple) where T = OpenCL.ones(T, dims)
20+
function KA.allocate(::OpenCLBackend, ::Type{T}, dims::Tuple; unified::Bool = false) where T
21+
if unified
22+
return CLArray{T, length(dims), cl.UnifiedSharedMemory}(undef, dims)
23+
else
24+
return CLArray{T}(undef, dims)
25+
end
26+
end
27+
28+
KA.supports_unified(::OpenCLBackend) = cl.usm_supported(cl.device())
2329

2430
KA.get_backend(::CLArray) = OpenCLBackend()
2531
# TODO should be non-blocking

0 commit comments

Comments
 (0)