Skip to content

Commit afc145a

Browse files
committed
Only use the stream-ordered memory pool when supported.
1 parent 56e06e9 commit afc145a

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/pool.jl

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,12 @@ include("pool/binned.jl")
197197
include("pool/split.jl")
198198

199199
const pools = PerDevice{AbstractPool}(dev->begin
200-
default_pool = version() >= v"11.2" ? "cuda" : "binned"
200+
default_pool = if version() >= v"11.2" &&
201+
attribute(dev, CUDA.DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED) == 1
202+
"cuda"
203+
else
204+
"binned"
205+
end
201206
pool_name = get(ENV, "JULIA_CUDA_MEMORY_POOL", default_pool)
202207
pool = if pool_name == "none"
203208
NoPool(; dev, stream_ordered=false)
@@ -209,6 +214,8 @@ const pools = PerDevice{AbstractPool}(dev->begin
209214
SplitPool(; dev, stream_ordered=false)
210215
elseif pool_name == "cuda"
211216
@assert version() >= v"11.2" "The CUDA memory pool is only supported on CUDA 11.2+"
217+
@assert(attribute(dev, CUDA.DEVICE_ATTRIBUTE_MEMORY_POOLS_SUPPORTED) == 1,
218+
"Your device $(name(dev)) does not support the CUDA memory pool")
212219
NoPool(; dev, stream_ordered=true)
213220
else
214221
error("Invalid memory pool '$pool_name'")

0 commit comments

Comments
 (0)