Closed
Description
As encountered on Windows:
┌ Warning: Failed to load GPU runtime library at C:\Users\Tim\.julia\scratchspaces\61eb1bfa-7361-4325-ad38-22787b887f55\compiled\v1.11\v1.5\runtime_spirv-khronos.bc
│ exception =
│ SystemError: opening file "C:\\Users\\Tim\\.julia\\scratchspaces\\61eb1bfa-7361-4325-ad38-22787b887f55\\compiled\\v1.11\\v1.5\\runtime_spirv-khronos.bc": Too many open files
│ Stacktrace:
│ [1] systemerror(p::String, errno::Int32; extrainfo::Nothing)
│ @ Base .\error.jl:176
│ [2] systemerror
│ @ .\error.jl:175 [inlined]
│ [3] open(fname::String; lock::Bool, read::Nothing, write::Nothing, create::Nothing, truncate::Nothing, append::Nothing)
│ @ Base .\iostream.jl:295
│ [4] open
│ @ .\iostream.jl:277 [inlined]
│ [5] open(f::GPUCompiler.var"#138#140", args::String; kwargs::@Kwargs{})
│ @ Base .\io.jl:408
│ [6] open
│ @ .\io.jl:407 [inlined]
│ [7] (::GPUCompiler.var"#137#139"{GPUCompiler.CompilerJob{GPUCompiler.SPIRVCompilerTarget, OpenCL.OpenCLCompilerParams}})()
│ @ GPUCompiler C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\rtlib.jl:140
│ [8] lock(f::GPUCompiler.var"#137#139"{GPUCompiler.CompilerJob{GPUCompiler.SPIRVCompilerTarget, OpenCL.OpenCLCompilerParams}}, l::ReentrantLock)
│ @ Base .\lock.jl:232
│ [9] macro expansion
│ @ C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\rtlib.jl:130 [inlined]
│ [10] load_runtime(job::GPUCompiler.CompilerJob)
│ @ GPUCompiler C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\utils.jl:116
│ [11] macro expansion
│ @ C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\driver.jl:265 [inlined]
│ [12] emit_llvm(job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
│ @ GPUCompiler C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\utils.jl:116
│ [13] emit_llvm(job::GPUCompiler.CompilerJob)
│ @ GPUCompiler C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\utils.jl:114
│ [14] compile_unhooked(output::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
│ @ GPUCompiler C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\driver.jl:95
│ [15] compile_unhooked
│ @ C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\driver.jl:80 [inlined]
│ [16] compile(target::Symbol, job::GPUCompiler.CompilerJob; kwargs::@Kwargs{})
│ @ GPUCompiler C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\driver.jl:67
│ [17] compile
│ @ C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\driver.jl:55 [inlined]
│ [18] #34
│ @ C:\Users\Tim\Julia\pkg\OpenCL\src\compiler\compilation.jl:59 [inlined]
│ [19] JuliaContext(f::OpenCL.var"#34#35"{GPUCompiler.CompilerJob{GPUCompiler.SPIRVCompilerTarget, OpenCL.OpenCLCompilerParams}}; kwargs::@Kwargs{})
│ @ GPUCompiler C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\driver.jl:34
│ [20] JuliaContext(f::Function)
│ @ GPUCompiler C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\driver.jl:25
│ [21] compile(job::GPUCompiler.CompilerJob)
│ @ OpenCL C:\Users\Tim\Julia\pkg\OpenCL\src\compiler\compilation.jl:58
│ [22] actual_compilation(cache::Dict{Any, Any}, src::Core.MethodInstance, world::UInt64, cfg::GPUCompiler.CompilerConfig{GPUCompiler.SPIRVCompilerTarget, OpenCL.OpenCLCompilerParams}, compiler::typeof(OpenCL.compile), linker::typeof(OpenCL.link))
│ @ GPUCompiler C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\execution.jl:245
│ [23] cached_compilation(cache::Dict{Any, Any}, src::Core.MethodInstance, cfg::GPUCompiler.CompilerConfig{GPUCompiler.SPIRVCompilerTarget, OpenCL.OpenCLCompilerParams}, compiler::Function, linker::Function)
│ @ GPUCompiler C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\execution.jl:159
│ [24] macro expansion
│ @ C:\Users\Tim\Julia\pkg\OpenCL\src\compiler\execution.jl:186 [inlined]
│ [25] macro expansion
│ @ .\lock.jl:273 [inlined]
│ [26] clfunction(f::typeof(OpenCL.partial_mapreduce_device), tt::Type{Tuple{typeof(identity), typeof(*), Float64, Val{1}, CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, CLDeviceArray{Float64, 4, 1}, CLDeviceArray{Float64, 3, 1}}}; kwargs::@Kwargs{})
│ @ OpenCL C:\Users\Tim\Julia\pkg\OpenCL\src\compiler\execution.jl:181
│ [27] clfunction(f::typeof(OpenCL.partial_mapreduce_device), tt::Type{Tuple{typeof(identity), typeof(*), Float64, Val{1}, CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, CartesianIndices{3, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}, Base.OneTo{Int64}}}, CLDeviceArray{Float64, 4, 1}, CLDeviceArray{Float64, 3, 1}}})
│ @ OpenCL C:\Users\Tim\Julia\pkg\OpenCL\src\compiler\execution.jl:177
│ [28] mapreducedim!(f::typeof(identity), op::typeof(*), R::CLArray{Float64, 3, OpenCL.cl.UnifiedDeviceMemory}, A::CLArray{Float64, 3, OpenCL.cl.UnifiedDeviceMemory}; init::Float64)
│ @ OpenCL C:\Users\Tim\Julia\pkg\OpenCL\src\mapreduce.jl:150
│ [29] mapreducedim!
│ @ C:\Users\Tim\Julia\pkg\OpenCL\src\mapreduce.jl:94 [inlined]
│ [30] _mapreduce(f::typeof(identity), op::typeof(*), As::CLArray{Float64, 3, OpenCL.cl.UnifiedDeviceMemory}; dims::Vector{Any}, init::Float64)
│ @ GPUArrays C:\Users\Tim\.julia\packages\GPUArrays\uiVyU\src\host\mapreduce.jl:76
│ [31] mapreduce(::Function, ::Function, ::CLArray{Float64, 3, OpenCL.cl.UnifiedDeviceMemory}; dims::Vector{Any}, init::Float64)
│ @ GPUArrays C:\Users\Tim\.julia\packages\GPUArrays\uiVyU\src\host\mapreduce.jl:28
│ [32] (::Main.var"##345".TestSuite.var"#188#193"{DataType, Vector{Any}})(A::CLArray{Float64, 3, OpenCL.cl.UnifiedDeviceMemory})
│ @ Main.var"##345".TestSuite C:\Users\Tim\.julia\packages\GPUArrays\uiVyU\test\testsuite\reductions.jl:54
│ [33] compare(f::Function, AT::Type{CLArray}, xs::Array{Float64, 3}; kwargs::@Kwargs{})
│ @ Main.var"##345".TestSuite C:\Users\Tim\.julia\packages\GPUArrays\uiVyU\test\testsuite.jl:42
│ [34] compare(f::Function, AT::Type{CLArray}, xs::Array{Float64, 3})
│ @ Main.var"##345".TestSuite C:\Users\Tim\.julia\packages\GPUArrays\uiVyU\test\testsuite.jl:36
│ [35] macro expansion
│ @ C:\Users\Tim\.julia\packages\GPUArrays\uiVyU\test\testsuite\reductions.jl:54 [inlined]
│ [36] macro expansion
│ @ C:\Users\Tim\.julia\juliaup\julia-1.11.5+0.x64.w64.mingw32\share\julia\stdlib\v1.11\Test\src\Test.jl:676 [inlined]
│ [37] macro expansion
│ @ C:\Users\Tim\.julia\packages\GPUArrays\uiVyU\test\testsuite\reductions.jl:54 [inlined]
│ [38] macro expansion
│ @ C:\Users\Tim\.julia\juliaup\julia-1.11.5+0.x64.w64.mingw32\share\julia\stdlib\v1.11\Test\src\Test.jl:1793 [inlined]
│ [39] (::Main.var"##345".TestSuite.var"#186#191")(AT::Type, eltypes::Vector{DataType})
│ @ Main.var"##345".TestSuite C:\Users\Tim\.julia\packages\GPUArrays\uiVyU\test\testsuite\reductions.jl:47
│ [40] test_reductions_mapreduce(AT::Type; eltypes::Vector{DataType})
│ @ Main.var"##345".TestSuite C:\Users\Tim\.julia\packages\GPUArrays\uiVyU\test\testsuite.jl:78
│ [41] (::Serialization.__deserialized_types__.var"#22#23"{String})()
│ @ Main C:\Users\Tim\Julia\pkg\OpenCL\test\runtests.jl:90
│ [42] macro expansion
│ @ C:\Users\Tim\Julia\pkg\OpenCL\test\setup.jl:107 [inlined]
│ [43] macro expansion
│ @ C:\Users\Tim\.julia\juliaup\julia-1.11.5+0.x64.w64.mingw32\share\julia\stdlib\v1.11\Test\src\Test.jl:1793 [inlined]
│ [44] macro expansion
│ @ C:\Users\Tim\Julia\pkg\OpenCL\test\setup.jl:102 [inlined]
│ [45] macro expansion
│ @ C:\Users\Tim\.julia\juliaup\julia-1.11.5+0.x64.w64.mingw32\share\julia\stdlib\v1.11\Test\src\Test.jl:1704 [inlined]
│ [46] macro expansion
│ @ C:\Users\Tim\Julia\pkg\OpenCL\test\setup.jl:102 [inlined]
│ [47] macro expansion
│ @ .\timing.jl:581 [inlined]
│ [48] top-level scope
│ @ C:\Users\Tim\Julia\pkg\OpenCL\test\setup.jl:101
│ [49] eval
│ @ .\boot.jl:430 [inlined]
│ [50] runtests(f::Function, name::String, platform_filter::SubString{String})
│ @ Main C:\Users\Tim\Julia\pkg\OpenCL\test\setup.jl:112
│ [51] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│ @ Base .\essentials.jl:1055
│ [52] invokelatest(::Any, ::Any, ::Vararg{Any})
│ @ Base .\essentials.jl:1052
│ [53] (::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}})()
│ @ Distributed C:\Users\Tim\.julia\juliaup\julia-1.11.5+0.x64.w64.mingw32\share\julia\stdlib\v1.11\Distributed\src\process_messages.jl:287
│ [54] run_work_thunk(thunk::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}}, print_error::Bool)
│ @ Distributed C:\Users\Tim\.julia\juliaup\julia-1.11.5+0.x64.w64.mingw32\share\julia\stdlib\v1.11\Distributed\src\process_messages.jl:70
└ @ GPUCompiler C:\Users\Tim\.julia\packages\GPUCompiler\sy6sk\src\rtlib.jl:145
We should probably cache the bytes read there.
Metadata
Metadata
Assignees
Labels
No labels