fonsp / Pluto.jl

🎈 Simple reactive notebooks for Julia
https://plutojl.org/
MIT License
4.96k stars 286 forks source link

Long error messages with CuArrays on 0.19.40 #2829

Closed roflmaostc closed 7 months ago

roflmaostc commented 7 months ago

Hi,

sometimes, with CuArrays I get super long error messages, even with Pluto 0.19.40 and Julia 1.10.1 on Ubuntu:

# ╔═╡ 686c58d8-d4c6-11ee-33d0-3b7faaf3d841
using CUDA, ImageShow, ImageIO

# ╔═╡ 4a98c5e0-8b00-42ad-b95d-ec07de6f8f8c
x = CUDA.rand(2,2)

# ╔═╡ 7fb401a5-9fc7-4b45-9f2d-12975b1f8598
simshow(x)

https://github.com/fonsp/Pluto.jl/assets/19436526/b23e82e6-316f-46d5-a757-bf582ab23588

Best,

Felix

``` Failed to show value: InvalidIRError: compiling MethodInstance for (::GPUArrays.var"#broadcast_kernel#38")(::CUDA.CuKernelContext, ::CUDA.CuDeviceMatrix{ColorTypes.Gray{FixedPointNumbers.N0f8}, 1}, ::Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2, CUDA.Mem.DeviceBuffer}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, ImageShow.var"#2#4", Tuple{Base.Broadcast.Extruded{CUDA.CuDeviceMatrix{ColorTypes.Gray{Float32}, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, ::Int64) resulted in invalid LLVM IR Reason: unsupported call to an unknown function (call to julia.new_gc_frame) Stacktrace: [1] _convert @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/normed.jl:76 [2] FixedPoint @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:58 [3] mapc @ ~/.julia/packages/ColorTypes/1dGw6/src/operations.jl:159 [4] #2 @ ~/.julia/packages/ImageShow/0sIWE/src/showmime.jl:33 [5] _broadcast_getindex_evalf @ ./broadcast.jl:709 [6] _broadcast_getindex @ ./broadcast.jl:682 [7] getindex @ ./broadcast.jl:636 [8] broadcast_kernel @ ~/.julia/packages/GPUArrays/Hd5Sk/src/host/broadcast.jl:50 Reason: unsupported call to an unknown function (call to julia.get_gc_frame_slot) Stacktrace: [1] _convert @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/normed.jl:76 [2] FixedPoint @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:58 [3] mapc @ ~/.julia/packages/ColorTypes/1dGw6/src/operations.jl:159 [4] #2 @ ~/.julia/packages/ImageShow/0sIWE/src/showmime.jl:33 [5] _broadcast_getindex_evalf @ ./broadcast.jl:709 [6] _broadcast_getindex @ ./broadcast.jl:682 [7] getindex @ ./broadcast.jl:636 [8] broadcast_kernel @ ~/.julia/packages/GPUArrays/Hd5Sk/src/host/broadcast.jl:50 Reason: unsupported call to an unknown function (call to julia.push_gc_frame) Stacktrace: [1] _convert @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/normed.jl:76 [2] FixedPoint @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:58 [3] mapc @ ~/.julia/packages/ColorTypes/1dGw6/src/operations.jl:159 [4] #2 @ ~/.julia/packages/ImageShow/0sIWE/src/showmime.jl:33 [5] _broadcast_getindex_evalf @ ./broadcast.jl:709 [6] _broadcast_getindex @ ./broadcast.jl:682 [7] getindex @ ./broadcast.jl:636 [8] broadcast_kernel @ ~/.julia/packages/GPUArrays/Hd5Sk/src/host/broadcast.jl:50 Reason: unsupported call through a literal pointer (call to ijl_alloc_string) Stacktrace: [1] _string_n @ ./strings/string.jl:90 [2] StringVector @ ./iobuffer.jl:32 [3] #IOBuffer#469 @ ./iobuffer.jl:115 [4] GenericIOBuffer @ ./iobuffer.jl:106 [5] throw_converterror @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:323 [6] _convert @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/normed.jl:76 [7] FixedPoint @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:58 [8] mapc @ ~/.julia/packages/ColorTypes/1dGw6/src/operations.jl:159 [9] #2 @ ~/.julia/packages/ImageShow/0sIWE/src/showmime.jl:33 [10] _broadcast_getindex_evalf @ ./broadcast.jl:709 [11] _broadcast_getindex @ ./broadcast.jl:682 [12] getindex @ ./broadcast.jl:636 [13] broadcast_kernel @ ~/.julia/packages/GPUArrays/Hd5Sk/src/host/broadcast.jl:50 Reason: unsupported call through a literal pointer (call to ijl_string_to_array) Stacktrace: [1] unsafe_wrap @ ./strings/string.jl:100 [2] StringVector @ ./iobuffer.jl:32 [3] #IOBuffer#469 @ ./iobuffer.jl:115 [4] GenericIOBuffer @ ./iobuffer.jl:106 [5] throw_converterror @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:323 [6] _convert @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/normed.jl:76 [7] FixedPoint @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:58 [8] mapc @ ~/.julia/packages/ColorTypes/1dGw6/src/operations.jl:159 [9] #2 @ ~/.julia/packages/ImageShow/0sIWE/src/showmime.jl:33 [10] _broadcast_getindex_evalf @ ./broadcast.jl:709 [11] _broadcast_getindex @ ./broadcast.jl:682 [12] getindex @ ./broadcast.jl:636 [13] broadcast_kernel @ ~/.julia/packages/GPUArrays/Hd5Sk/src/host/broadcast.jl:50 Reason: unsupported call through a literal pointer (call to ijl_array_to_string) Stacktrace: [1] String @ ./strings/string.jl:67 [2] throw_converterror @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:324 [3] _convert @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/normed.jl:76 [4] FixedPoint @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:58 [5] mapc @ ~/.julia/packages/ColorTypes/1dGw6/src/operations.jl:159 [6] #2 @ ~/.julia/packages/ImageShow/0sIWE/src/showmime.jl:33 [7] _broadcast_getindex_evalf @ ./broadcast.jl:709 [8] _broadcast_getindex @ ./broadcast.jl:682 [9] getindex @ ./broadcast.jl:636 [10] broadcast_kernel @ ~/.julia/packages/GPUArrays/Hd5Sk/src/host/broadcast.jl:50 Reason: unsupported call through a literal pointer (call to ijl_array_to_string) Stacktrace: [1] String @ ./strings/string.jl:67 [2] throw_converterror @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:325 [3] _convert @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/normed.jl:76 [4] FixedPoint @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:58 [5] mapc @ ~/.julia/packages/ColorTypes/1dGw6/src/operations.jl:159 [6] #2 @ ~/.julia/packages/ImageShow/0sIWE/src/showmime.jl:33 [7] _broadcast_getindex_evalf @ ./broadcast.jl:709 [8] _broadcast_getindex @ ./broadcast.jl:682 [9] getindex @ ./broadcast.jl:636 [10] broadcast_kernel @ ~/.julia/packages/GPUArrays/Hd5Sk/src/host/broadcast.jl:50 Reason: unsupported dynamic function invocation (call to print_to_string(xs...) @ Base strings/io.jl:137) Stacktrace: [1] string @ ./strings/io.jl:189 [2] throw_converterror @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:326 [3] _convert @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/normed.jl:76 [4] FixedPoint @ ~/.julia/packages/FixedPointNumbers/HAGk2/src/FixedPointNumbers.jl:58 [5] mapc @ ~/.julia/packages/ColorTypes/1dGw6/src/operations.jl:159 [6] #2 @ ~/.julia/packages/ImageShow/0sIWE/src/showmime.jl:33 [7] _broadcast_getindex_evalf @ ./broadcast.jl:709 [8] _broadcast_getindex @ ./broadcast.jl:682 [9] getindex @ ./broadcast.jl:636 [10] broadcast_kernel @ ~/.julia/packages/GPUArrays/Hd5Sk/src/host/broadcast.jl:50 Reason: unsupported call to an unknown function (call to julia.new_gc_frame) Stacktrace: [1] multiple call sites @ unknown:0 Reason: unsupported call to an unknown function (call to julia.push_gc_frame) Stacktrace: [1] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_alloc_string) Stacktrace: [1] _string_n @ ./strings/string.jl:90 [2] StringVector @ ./iobuffer.jl:32 [3] take! @ ./iobuffer.jl:408 [4] multiple call sites @ unknown:0 Reason: unsupported call to an unknown function (call to julia.get_gc_frame_slot) Stacktrace: [1] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_string_to_array) Stacktrace: [1] unsafe_wrap @ ./strings/string.jl:100 [2] StringVector @ ./iobuffer.jl:32 [3] take! @ ./iobuffer.jl:408 [4] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_array_grow_end) Stacktrace: [1] _growend! @ ./array.jl:1072 [2] resize! @ ./array.jl:1315 [3] take! @ ./iobuffer.jl:410 [4] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_array_del_end) Stacktrace: [1] _deleteend! @ ./array.jl:1081 [2] resize! @ ./array.jl:1320 [3] take! @ ./iobuffer.jl:410 [4] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_alloc_string) Stacktrace: [1] _string_n @ ./strings/string.jl:90 [2] StringVector @ ./iobuffer.jl:32 [3] take! @ ./iobuffer.jl:414 [4] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_string_to_array) Stacktrace: [1] unsafe_wrap @ ./strings/string.jl:100 [2] StringVector @ ./iobuffer.jl:32 [3] take! @ ./iobuffer.jl:414 [4] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_array_del_beg) Stacktrace: [1] _deletebeg! @ ./array.jl:1079 [2] take! @ ./iobuffer.jl:421 [3] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_array_grow_end) Stacktrace: [1] _growend! @ ./array.jl:1072 [2] resize! @ ./array.jl:1315 [3] take! @ ./iobuffer.jl:422 [4] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_array_del_end) Stacktrace: [1] _deleteend! @ ./array.jl:1081 [2] resize! @ ./array.jl:1320 [3] take! @ ./iobuffer.jl:422 [4] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_alloc_string) Stacktrace: [1] _string_n @ ./strings/string.jl:90 [2] StringVector @ ./iobuffer.jl:32 [3] take! @ ./iobuffer.jl:424 [4] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_string_to_array) Stacktrace: [1] unsafe_wrap @ ./strings/string.jl:100 [2] StringVector @ ./iobuffer.jl:32 [3] take! @ ./iobuffer.jl:424 [4] multiple call sites @ unknown:0 Reason: unsupported call to an unknown function (call to julia.pop_gc_frame) Stacktrace: [1] multiple call sites @ unknown:0 Reason: unsupported dynamic function invocation (call to !=) Stacktrace: [1] show @ ./ryu/Ryu.jl:115 [2] multiple call sites @ unknown:0 Reason: unsupported dynamic function invocation (call to writeshortest) Stacktrace: [1] show @ ./ryu/Ryu.jl:116 [2] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_array_grow_end) Stacktrace: [1] _growend! @ ./array.jl:1072 [2] resize! @ ./array.jl:1315 [3] show @ ./ryu/Ryu.jl:118 [4] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_array_del_end) Stacktrace: [1] _deleteend! @ ./array.jl:1081 [2] resize! @ ./array.jl:1320 [3] show @ ./ryu/Ryu.jl:118 [4] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_alloc_string) Stacktrace: [1] _string_n @ ./strings/string.jl:90 [2] StringVector @ ./iobuffer.jl:32 [3] show @ ./ryu/Ryu.jl:114 [4] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_string_to_array) Stacktrace: [1] unsafe_wrap @ ./strings/string.jl:100 [2] StringVector @ ./iobuffer.jl:32 [3] show @ ./ryu/Ryu.jl:114 [4] multiple call sites @ unknown:0 Reason: unsupported call to an unknown function (call to julia.new_gc_frame) Stacktrace: [1] unsafe_write @ ./io.jl:431 [2] unsafe_write @ ./io.jl:698 [3] write @ ./io.jl:721 [4] show @ ./ryu/Ryu.jl:118 [5] multiple call sites @ unknown:0 Reason: unsupported call to an unknown function (call to julia.push_gc_frame) Stacktrace: [1] unsafe_write @ ./io.jl:431 [2] unsafe_write @ ./io.jl:698 [3] write @ ./io.jl:721 [4] show @ ./ryu/Ryu.jl:118 [5] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_alloc_string) Stacktrace: [1] _string_n @ ./strings/string.jl:90 [2] StringVector @ ./iobuffer.jl:32 [3] _similar_data @ ./iobuffer.jl:142 [4] ensureroom @ ./iobuffer.jl:337 [5] unsafe_write @ ./iobuffer.jl:458 [6] unsafe_write @ ./io.jl:431 [7] unsafe_write @ ./io.jl:698 [8] write @ ./io.jl:721 [9] show @ ./ryu/Ryu.jl:118 [10] multiple call sites @ unknown:0 Reason: unsupported call to an unknown function (call to julia.get_gc_frame_slot) Stacktrace: [1] unsafe_write @ ./io.jl:431 [2] unsafe_write @ ./io.jl:698 [3] write @ ./io.jl:721 [4] show @ ./ryu/Ryu.jl:118 [5] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_string_to_array) Stacktrace: [1] unsafe_wrap @ ./strings/string.jl:100 [2] StringVector @ ./iobuffer.jl:32 [3] _similar_data @ ./iobuffer.jl:142 [4] ensureroom @ ./iobuffer.jl:337 [5] unsafe_write @ ./iobuffer.jl:458 [6] unsafe_write @ ./io.jl:431 [7] unsafe_write @ ./io.jl:698 [8] write @ ./io.jl:721 [9] show @ ./ryu/Ryu.jl:118 [10] multiple call sites @ unknown:0 Reason: unsupported call through a literal pointer (call to ijl_array_grow_end) Stacktrace: [1] _growend! @ ./array.jl:1072 [2] ensureroom @ ./iobuffer.jl:342 [3] unsafe_write @ ./iobuffer.jl:458 [4] unsafe_write @ ./io.jl:431 [5] unsafe_write @ ./io.jl:698 [6] write @ ./io.jl:721 [7] show @ ./ryu/Ryu.jl:118 [8] multiple call sites @ unknown:0 Reason: unsupported call to an unknown function (call to julia.pop_gc_frame) Stacktrace: [1] unsafe_write @ ./io.jl:431 [2] unsafe_write @ ./io.jl:698 [3] write @ ./io.jl:721 [4] show @ ./ryu/Ryu.jl:118 [5] multiple call sites @ unknown:0 Reason: unsupported call to an unknown function (call to julia.new_gc_frame) Stacktrace: [1] ensureroom @ ./iobuffer.jl:333 [2] unsafe_write @ ./iobuffer.jl:458 [3] unsafe_write @ ./io.jl:431 [4] unsafe_write @ ./io.jl:698 [5] write @ ./io.jl:721 [6] show @ ./ryu/Ryu.jl:118 [7] multiple call sites @ unknown:0 Reason: unsupported call to an unknown function (call to julia.push_gc_frame) Stacktrace: [1] ensureroom @ ./iobuffer.jl:333 [2] unsafe_write @ ./iobuffer.jl:458 [3] unsafe_write @ ./io.jl:431 [4] unsafe_write @ ./io.jl:698 [5] write @ ./io.jl:721 [6] show @ ./ryu/Ryu.jl:118 [7] multiple call sites @ unknown:0 Reason: unsupported call to an unknown function (call to julia.get_gc_frame_slot) Stacktrace: [1] ensureroom @ ./iobuffer.jl:333 [2] unsafe_write @ ./iobuffer.jl:458 [3] unsafe_write @ ./io.jl:431 [4] unsafe_write @ ./io.jl:698 [5] write @ ./io.jl:721 [6] show @ ./ryu/Ryu.jl:118 [7] multiple call sites @ unknown:0 Reason: unsupported call to an unknown function (call to julia.pop_gc_frame) Stacktrace: [1] ensureroom @ ./iobuffer.jl:333 [2] unsafe_write @ ./iobuffer.jl:458 [3] unsafe_write @ ./io.jl:431 [4] unsafe_write @ ./io.jl:698 [5] write @ ./io.jl:721 [6] show @ ./ryu/Ryu.jl:118 [7] multiple call sites @ unknown:0 Hint: catch this exception as `err` and call `code_typed(err; interactive = true)` to introspect the erronous code with Cthulhu.jl Stacktrace: [1] check_ir(job::GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams}, args::LLVM.Module) @ GPUCompiler ~/.julia/packages/GPUCompiler/U36Ed/src/validation.jl:147 [2] macro expansion @ ~/.julia/packages/GPUCompiler/U36Ed/src/driver.jl:440 [inlined] [3] macro expansion @ ~/.julia/packages/TimerOutputs/RsWnF/src/TimerOutput.jl:253 [inlined] [4] macro expansion @ ~/.julia/packages/GPUCompiler/U36Ed/src/driver.jl:439 [inlined] [5] emit_llvm(job::GPUCompiler.CompilerJob; libraries::Bool, toplevel::Bool, optimize::Bool, cleanup::Bool, only_entry::Bool, validate::Bool) @ GPUCompiler ~/.julia/packages/GPUCompiler/U36Ed/src/utils.jl:92 [6] emit_llvm @ ~/.julia/packages/GPUCompiler/U36Ed/src/utils.jl:86 [inlined] [7] codegen(output::Symbol, job::GPUCompiler.CompilerJob; libraries::Bool, toplevel::Bool, optimize::Bool, cleanup::Bool, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing) @ GPUCompiler ~/.julia/packages/GPUCompiler/U36Ed/src/driver.jl:129 [8] codegen @ ~/.julia/packages/GPUCompiler/U36Ed/src/driver.jl:110 [inlined] [9] compile(target::Symbol, job::GPUCompiler.CompilerJob; libraries::Bool, toplevel::Bool, optimize::Bool, cleanup::Bool, strip::Bool, validate::Bool, only_entry::Bool) @ GPUCompiler ~/.julia/packages/GPUCompiler/U36Ed/src/driver.jl:106 [10] compile @ ~/.julia/packages/GPUCompiler/U36Ed/src/driver.jl:98 [inlined] [11] #1072 @ ~/.julia/packages/CUDA/htRwP/src/compiler/compilation.jl:247 [inlined] [12] JuliaContext(f::CUDA.var"#1072#1075"{GPUCompiler.CompilerJob{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams}}) @ GPUCompiler ~/.julia/packages/GPUCompiler/U36Ed/src/driver.jl:47 [13] compile(job::GPUCompiler.CompilerJob) @ CUDA ~/.julia/packages/CUDA/htRwP/src/compiler/compilation.jl:246 [14] actual_compilation(cache::Dict{Any, CUDA.CuFunction}, src::Core.MethodInstance, world::UInt64, cfg::GPUCompiler.CompilerConfig{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams}, compiler::typeof(CUDA.compile), linker::typeof(CUDA.link)) @ GPUCompiler ~/.julia/packages/GPUCompiler/U36Ed/src/execution.jl:125 [15] cached_compilation(cache::Dict{Any, CUDA.CuFunction}, src::Core.MethodInstance, cfg::GPUCompiler.CompilerConfig{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams}, compiler::Function, linker::Function) @ GPUCompiler ~/.julia/packages/GPUCompiler/U36Ed/src/execution.jl:103 [16] macro expansion @ ~/.julia/packages/CUDA/htRwP/src/compiler/execution.jl:367 [inlined] [17] macro expansion @ ./lock.jl:267 [inlined] [18] cufunction(f::GPUArrays.var"#broadcast_kernel#38", tt::Type{Tuple{CUDA.CuKernelContext, CUDA.CuDeviceMatrix{ColorTypes.Gray{FixedPointNumbers.N0f8}, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2, CUDA.Mem.DeviceBuffer}, Tuple{Base.OneTo{Int64}, Base.OneTo{Int64}}, ImageShow.var"#2#4", Tuple{Base.Broadcast.Extruded{CUDA.CuDeviceMatrix{ColorTypes.Gray{Float32}, 1}, Tuple{Bool, Bool}, Tuple{Int64, Int64}}}}, Int64}}; kwargs::@Kwargs{}) @ CUDA ~/.julia/packages/CUDA/htRwP/src/compiler/execution.jl:362 [19] cufunction @ ~/.julia/packages/CUDA/htRwP/src/compiler/execution.jl:359 [inlined] [20] macro expansion @ ~/.julia/packages/CUDA/htRwP/src/compiler/execution.jl:112 [inlined] [21] #launch_heuristic#1122 @ ~/.julia/packages/CUDA/htRwP/src/gpuarrays.jl:17 [inlined] [22] launch_heuristic @ ~/.julia/packages/CUDA/htRwP/src/gpuarrays.jl:15 [inlined] [23] _copyto! @ ~/.julia/packages/GPUArrays/Hd5Sk/src/host/broadcast.jl:56 [inlined] [24] copyto! @ ~/.julia/packages/GPUArrays/Hd5Sk/src/host/broadcast.jl:37 [inlined] [25] copy @ ~/.julia/packages/GPUArrays/Hd5Sk/src/host/broadcast.jl:28 [inlined] [26] materialize(bc::Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{2, CUDA.Mem.DeviceBuffer}, Nothing, ImageShow.var"#2#4", Tuple{CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}}}) @ Base.Broadcast ./broadcast.jl:903 [27] map(::Function, ::CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}) @ GPUArrays ~/.julia/packages/GPUArrays/Hd5Sk/src/host/broadcast.jl:75 [28] save(s::FileIO.Stream{FileIO.DataFormat{:PNG}, IOContext{IOBuffer}, Nothing}, image::CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}; permute_horizontal::Bool, mapi::Function, kwargs::@Kwargs{}) @ ImageIO ~/.julia/packages/ImageIO/XthUV/src/ImageIO.jl:74 [29] #invokelatest#2 @ ./essentials.jl:894 [inlined] [30] invokelatest @ ./essentials.jl:889 [inlined] [31] action(call::Symbol, libraries::Vector{Union{Base.PkgId, Module}}, file::FileIO.Formatted, args::CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}; options::@Kwargs{mapi::ImageShow.var"#2#4"}) @ FileIO ~/.julia/packages/FileIO/jMf68/src/loadsave.jl:219 [32] action @ ~/.julia/packages/FileIO/jMf68/src/loadsave.jl:196 [inlined] [33] save(file::FileIO.Formatted, args::CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}; options::@Kwargs{mapi::ImageShow.var"#2#4"}) @ FileIO ~/.julia/packages/FileIO/jMf68/src/loadsave.jl:135 [34] show(io::IOContext{IOBuffer}, mime::MIME{Symbol("image/png")}, img::CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}; minpixels::Int64, maxpixels::Int64, mapi::Function) @ ImageShow ~/.julia/packages/ImageShow/0sIWE/src/showmime.jl:47 [35] show(io::IOContext{IOBuffer}, mime::MIME{Symbol("image/png")}, img::CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}) @ ImageShow ~/.julia/packages/ImageShow/0sIWE/src/showmime.jl:29 [36] show_richest(io::IOContext{IOBuffer}, x::Any) @ PlutoRunner ~/.julia/packages/Pluto/HYpFq/src/runner/PlutoRunner/src/PlutoRunner.jl:1427 [37] show_richest_withreturned @ ~/.julia/packages/Pluto/HYpFq/src/runner/PlutoRunner/src/PlutoRunner.jl:1352 [inlined] [38] format_output_default(val::Any, context::Any) @ PlutoRunner ~/.julia/packages/Pluto/HYpFq/src/runner/PlutoRunner/src/PlutoRunner.jl:1032 [39] format_output @ ~/.julia/packages/Pluto/HYpFq/src/runner/PlutoRunner/src/PlutoRunner.jl:1049 [inlined] [40] #53 @ ~/.julia/packages/Pluto/HYpFq/src/runner/PlutoRunner/src/PlutoRunner.jl:934 [inlined] [41] with_io_to_logs(f::PlutoRunner.var"#53#56"{Base.UUID, Base.UUID, Module, CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}, Dict{Tuple{UInt64, Int64}, Int64}}; enabled::Bool, loglevel::Base.CoreLogging.LogLevel) @ PlutoRunner ~/.julia/packages/Pluto/HYpFq/src/runner/PlutoRunner/src/PlutoRunner.jl:2724 [42] with_io_to_logs @ ~/.julia/packages/Pluto/HYpFq/src/runner/PlutoRunner/src/PlutoRunner.jl:2671 [inlined] [43] (::PlutoRunner.var"#126#127"{Bool, Base.CoreLogging.LogLevel, PlutoRunner.var"#53#56"{Base.UUID, Base.UUID, Module, CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}, Dict{Tuple{UInt64, Int64}, Int64}}})() @ PlutoRunner ~/.julia/packages/Pluto/HYpFq/src/runner/PlutoRunner/src/PlutoRunner.jl:2748 [44] with_logstate(f::Function, logstate::Any) @ Base.CoreLogging ./logging.jl:515 [45] with_logger @ ./logging.jl:627 [inlined] [46] #with_logger_and_io_to_logs#125 @ ~/.julia/packages/Pluto/HYpFq/src/runner/PlutoRunner/src/PlutoRunner.jl:2747 [inlined] [47] with_logger_and_io_to_logs @ ~/.julia/packages/Pluto/HYpFq/src/runner/PlutoRunner/src/PlutoRunner.jl:2746 [inlined] [48] formatted_result_of(notebook_id::Base.UUID, cell_id::Base.UUID, ends_with_semicolon::Bool, known_published_objects::Vector{String}, showmore::Nothing, workspace::Module; capture_stdout::Bool) @ PlutoRunner ~/.julia/packages/Pluto/HYpFq/src/runner/PlutoRunner/src/PlutoRunner.jl:933 [49] top-level scope @ ~/.julia/packages/Pluto/HYpFq/src/evaluation/WorkspaceManager.jl:485 Stack trace Here is what happened, the most recent locations are first: handle_error(e::GPUCompiler.InvalidIRError, q::Base.PkgId, bt::Vector{Union{Ptr{Nothing}, Base.InterpreterIP}}) @ error_handling.jl:61 handle_exceptions(exceptions::Vector{Tuple{Any, Union{Base.PkgId, Module}, Vector}}, action::String) @ error_handling.jl:56 action(call::Symbol, libraries::Vector{Union{Base.PkgId, Module}}, file::FileIO.Formatted, args::CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}; options::@Kwargs{mapi::ImageShow.var"#2#4"}) @ loadsave.jl:228 action @ loadsave.jl:196 save(file::FileIO.Formatted, args::CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}; options::@Kwargs{mapi::ImageShow.var"#2#4"}) @ loadsave.jl:135 show(io::IOContext{IOBuffer}, mime::MIME{Symbol("image/png")}, img::CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}; minpixels::Int64, maxpixels::Int64, mapi::Function) @ showmime.jl:47 show(io::IOContext{IOBuffer}, mime::MIME{Symbol("image/png")}, img::CUDA.CuArray{ColorTypes.Gray{Float32}, 2, CUDA.Mem.DeviceBuffer}) @ showmime.jl:29 ```
fonsp commented 7 months ago

I don't have CUDA, but can you try running this in the REPL?

using CUDA, ImageShow, ImageIO

x = CUDA.rand(2,2)

s = simshow(x);

repr("image/png", s)
roflmaostc commented 7 months ago

Looks very similar

https://github.com/fonsp/Pluto.jl/assets/19436526/7c54de5a-3e01-445f-b01c-ca283f979272

fonsp commented 7 months ago

Can you run this in the REPL? Without Pluto? If it also happens there, then it's not a Pluto issue :)

roflmaostc commented 7 months ago

Oh sorry, this errors definitely.

I wanted to point out that the stack trace is not shortened as I would have expected by the new "stack trace pluto feature".

fonsp commented 7 months ago

Ah, that's because this stack trace is in the error message, it's not the actual stack trace. I think Base.show errors are rare enough that its probably not worth the effort to improve this :)

fonsp commented 7 months ago

Thanks! Feel free to post more feedback about stack traces!

roflmaostc commented 7 months ago

So there is no easy way to squeeze this error into the smaller box? :/

fonsp commented 7 months ago

Yes but I think it's not worth the effort because it's rare. You could also contact the package authors to improve their errors