Closed curtcorum closed 9 months ago
Everything looks wonderful with julia 1.8!
(base) curt@green:~$ julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.8.5 (2023-01-08)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
julia> using KomaMRI
│ Package KomaMRI not found, but a package named KomaMRI is available from a registry.
│ Install package?
│ (@v1.8) pkg> add KomaMRI
└ (y/n/o) [y]:
Updating registry at `~/.julia/registries/General.toml`
Resolving package versions...
Installed InverseFunctions ─── v0.1.12
Installed DensityInterface ─── v0.4.0
Installed ChangesOfVariables ─ v0.1.8
Installed MakieCore ────────── v0.7.2
Installed ArrayInterface ───── v7.5.1
Downloaded artifact: LLVMExtra
Updating `~/.julia/environments/v1.8/Project.toml`
[6a340f8b] + KomaMRI v0.7.5
Updating `~/.julia/environments/v1.8/Manifest.toml`
[14f7f29c] + AMD v0.5.3
[621f4979] + AbstractFFTs v1.5.0
[7f219486] + AbstractNFFTs v0.8.2
⌅ [79e6a3ab] + Adapt v3.7.2
[dce04be8] + ArgCheck v2.3.0
⌅ [4fba245c] + ArrayInterface v7.5.1
[bf4720bc] + AssetRegistry v0.1.0
⌃ [13072b0f] + AxisAlgorithms v1.0.1
[39de3d68] + AxisArrays v0.4.7
⌅ [ab4f0b2a] + BFloat16s v0.2.0
[198e06fe] + BangBang v0.3.39
[9718e550] + Baselet v0.1.1
[26cce99e] + BasicInterpolators v0.7.1
[d1d4a3ce] + BitFlags v0.1.8
[62783981] + BitTwiddlingConvenienceFunctions v0.1.5
[ad839575] + Blink v0.12.9
[e1450e63] + BufferedStreams v1.2.1
⌅ [fa961155] + CEnum v0.4.2
[2a0fbf3d] + CPUSummary v0.2.4
[70588ee8] + CSSUtil v0.1.1
⌅ [052768ef] + CUDA v3.13.1
[49dc2e85] + Calculus v0.5.1
[d360d2e6] + ChainRulesCore v1.19.1
[9e997f8a] + ChangesOfVariables v0.1.8
[944b1d66] + CodecZlib v0.7.3
[35d6a980] + ColorSchemes v3.24.0
[3da002f7] + ColorTypes v0.11.4
[c3611d14] + ColorVectorSpace v0.10.0
[5ae59095] + Colors v0.12.10
[34da2185] + Compat v4.12.0
[a33af91c] + CompositionsBase v0.1.2
[f0e56b4a] + ConcurrentUtilities v2.3.0
[187b0558] + ConstructionBase v1.5.4
[6add18c4] + ContextVariablesX v0.1.3
[adafc99b] + CpuId v0.3.1
[717857b8] + DSP v0.7.9
[9a962f9c] + DataAPI v1.15.0
[864edb3b] + DataStructures v0.18.16
[e2d170a0] + DataValueInterfaces v1.0.0
[244e2a9f] + DefineSingletons v0.1.2
[b429d917] + DensityInterface v0.4.0
[31c24e10] + Distributions v0.25.107
[ffbed154] + DocStringExtensions v0.9.3
[fa6b7ba4] + DualNumbers v0.6.8
[460bff9d] + ExceptionUnwrapping v0.1.10
[e2ba6199] + ExprTools v0.1.10
[7a1cc6ca] + FFTW v1.7.2
[cc61a311] + FLoops v0.2.1
[b9860ae5] + FLoopsBase v0.1.1
[9aa1b823] + FastClosures v0.3.2
[5789e2e9] + FileIO v1.16.2
[1a297f60] + FillArrays v1.9.3
[53c48c17] + FixedPointNumbers v0.8.4
[de31a74c] + FunctionalCollections v0.5.0
[d9f16b24] + Functors v0.4.5
⌅ [0c68f7d7] + GPUArrays v8.8.1
⌅ [46192b85] + GPUArraysCore v0.1.5
⌅ [61eb1bfa] + GPUCompiler v0.17.3
⌅ [f67ccb44] + HDF5 v0.16.16
[cd3eb016] + HTTP v1.10.1
[9fb69e20] + Hiccup v0.2.2
[3e5b6fbb] + HostCPUFeatures v0.1.16
[34004b35] + HypergeometricFunctions v0.3.23
[615f187c] + IfElse v0.1.1
[22cec73e] + InitialValues v0.3.1
[c601a237] + Interact v0.10.5
[d3863d7c] + InteractBase v0.10.10
⌅ [a98d9a8b] + Interpolations v0.14.7
[8197267c] + IntervalSets v0.7.8
[3587e190] + InverseFunctions v0.1.12
[92d709cd] + IrrationalConstants v0.2.2
[c8e1da08] + IterTools v1.10.0
[42fd0dbc] + IterativeSolvers v0.9.3
[82899510] + IteratorInterfaceExtensions v1.0.0
[033835bb] + JLD2 v0.4.44
[692b3bcd] + JLLWrappers v1.5.0
[97c1335a] + JSExpr v0.5.4
[682c06a0] + JSON v0.21.4
[b14d175d] + JuliaVariables v0.2.4
[bcebb21b] + Knockout v0.2.6
[6a340f8b] + KomaMRI v0.7.5
⌅ [4baa4f4d] + KomaMRICore v0.7.6
⌅ [76db0263] + KomaMRIPlots v0.7.7
[40e66cde] + LDLFactorizations v0.10.1
⌅ [929cbde3] + LLVM v4.17.1
[b964fa9f] + LaTeXStrings v1.3.1
[10f19ff3] + LayoutPointers v0.1.15
[50d2b5c4] + Lazy v0.15.1
[9c8b4983] + LightXML v0.9.1
[5c8ed15e] + LinearOperators v2.6.0
[2ab3a3ac] + LogExpFunctions v0.3.26
[e6f89c97] + LoggingExtras v1.0.3
[898213cb] + LowRankApprox v0.5.5
[e65ccdef] + LowRankMatrices v1.0.0
[23992714] + MAT v0.10.6
[d8e11817] + MLStyle v0.4.17
[3da0fdf6] + MPIPreferences v0.1.10
⌅ [f7771a9a] + MRIBase v0.3.3
⌅ [5a6f062f] + MRIFiles v0.1.6
⌅ [fb1137e3] + MRIOperators v0.1.3
⌃ [bdf86e05] + MRIReco v0.7.1
[1914dd2f] + MacroTools v0.5.13
[20f20a25] + MakieCore v0.7.2
[d125e4d3] + ManualMemory v0.1.8
[739be429] + MbedTLS v1.1.9
[442fdcdd] + Measures v0.3.2
[c03570c3] + Memoize v0.4.4
[128add7d] + MicroCollections v0.1.4
[e1d29d7a] + Missings v1.1.0
[ffc61752] + Mustache v1.0.19
[a975b10e] + Mux v1.0.1
[efe261a4] + NFFT v0.13.3
[7424e34d] + NFFTTools v0.2.6
[77ba4419] + NaNMath v1.0.2
[71a1bf82] + NameResolution v0.1.5
[4d1e1d77] + Nullables v1.0.0
[510215fc] + Observables v0.5.5
[6fe1bfb0] + OffsetArrays v1.13.0
[4d8831e6] + OpenSSL v1.4.1
[bac558e1] + OrderedCollections v1.6.3
[90014a1f] + PDMats v0.11.31
[65ce6f38] + PackageExtensionCompat v1.0.2
[d96e819e] + Parameters v0.12.3
[69de0a69] + Parsers v2.8.1
[fa939f87] + Pidfile v1.3.0
[a03496cd] + PlotlyBase v0.8.19
[f0f68f2c] + PlotlyJS v0.18.12
[f27b6e38] + Polynomials v4.0.6
[aea7be01] + PrecompileTools v1.2.0
[21216c6a] + Preferences v1.4.1
[8162dcfd] + PrettyPrint v0.2.0
[92933f4c] + ProgressMeter v1.9.0
[1fd47b50] + QuadGK v2.9.4
[74087812] + Random123 v1.6.2
[e6cf234a] + RandomNumbers v1.5.3
[b3c3ace0] + RangeArrays v0.3.2
[c84ed2f1] + Ratios v0.4.5
[3cdcf5f2] + RecipesBase v1.3.4
[189a3867] + Reexport v1.2.2
[42d2dcc6] + Referenceables v0.1.3
⌅ [1e9c538a] + RegularizedLeastSquares v0.9.1
[ae029012] + Requires v1.3.0
[79098fc4] + Rmath v0.7.1
[94e857df] + SIMDTypes v0.1.0
[6ef1bc8b] + Scanf v0.5.4
[efcf1570] + Setfield v1.1.1
[777ac1f9] + SimpleBufferStream v1.1.0
[66db9d55] + SnoopPrecompile v1.0.3
[a2af1166] + SortingAlgorithms v1.2.1
[a5ff1dd3] + SparsityOperators v0.4.7
[276daf66] + SpecialFunctions v2.3.1
[171d559e] + SplittablesBase v0.1.15
[aedffcd0] + Static v0.8.8
[0d7ed370] + StaticArrayInterface v1.5.0
[90137ffa] + StaticArrays v1.9.1
[1e83bf80] + StaticArraysCore v1.4.2
[82ae8749] + StatsAPI v1.7.0
⌅ [2913bbd2] + StatsBase v0.33.21
[4c63d2b9] + StatsFuns v1.3.0
[3783bdb8] + TableTraits v1.0.1
[bd369af6] + Tables v1.11.1
[62fd8b95] + TensorCore v0.1.1
[ac1d9e8a] + ThreadsX v0.1.11
[a759f4b9] + TimerOutputs v0.5.23
[3bb67fe8] + TranscodingStreams v0.10.2
[28d57a85] + Transducers v0.4.80
[5c2747f8] + URIs v1.5.1
[3a884ed6] + UnPack v1.0.2
[1986cc42] + Unitful v1.19.0
[3d5dd08c] + VectorizationBase v0.21.65
⌅ [29a6e085] + Wavelets v0.9.5
[0f1e0344] + WebIO v0.8.21
[104b5d7c] + WebSockets v1.6.0
[cc8bc4a8] + Widgets v0.6.6
⌅ [efce3f68] + WoodburyMatrices v0.5.6
[f5851436] + FFTW_jll v3.3.10+0
⌃ [0234f1f7] + HDF5_jll v1.14.2+1
[e33a78d0] + Hwloc_jll v2.10.0+0
[1d5cc7b8] + IntelOpenMP_jll v2024.0.2+0
[f7e6163d] + Kaleido_jll v0.2.1+0
⌅ [dad2f222] + LLVMExtra_jll v0.0.18+0
[1d63c593] + LLVMOpenMP_jll v15.0.7+0
[94ce4f54] + Libiconv_jll v1.17.0+0
[856f044c] + MKL_jll v2024.0.0+0
[7cb0a576] + MPICH_jll v4.1.2+1
[f1f71cc9] + MPItrampoline_jll v5.3.1+1
[9237b28f] + MicrosoftMPI_jll v10.1.4+1
[fe0851c0] + OpenMPI_jll v5.0.1+0
[458c3c95] + OpenSSL_jll v3.0.12+0
[efe28fd5] + OpenSpecFun_jll v0.5.5+0
[32165bc3] + PMIx_jll v4.2.7+0
[f50d1b31] + Rmath_jll v0.4.0+0
[02c8fc9c] + XML2_jll v2.12.2+0
[477f73a3] + libaec_jll v1.0.6+1
[1080aeaf] + libevent_jll v2.1.13+1
[eb928a42] + prrte_jll v3.0.2+0
[0dad84c5] + ArgTools v1.1.1
[56f22d72] + Artifacts
[2a0f44e3] + Base64
[ade2ca70] + Dates
[8bb1440f] + DelimitedFiles
[8ba89e20] + Distributed
[f43a241f] + Downloads v1.6.0
[7b1f6079] + FileWatching
[9fa8497b] + Future
[b77e0a4c] + InteractiveUtils
[4af54fe1] + LazyArtifacts
[b27032c2] + LibCURL v0.6.3
[76f85450] + LibGit2
[8f399da3] + Libdl
[37e2e46d] + LinearAlgebra
[56ddb016] + Logging
[d6f4376e] + Markdown
[a63ad114] + Mmap
[ca575930] + NetworkOptions v1.2.0
[44cfe95a] + Pkg v1.8.0
[de0858da] + Printf
[3fa0cd96] + REPL
[9a3f8284] + Random
[ea8e919c] + SHA v0.7.0
[9e88b42a] + Serialization
[1a1011a3] + SharedArrays
[6462fe0b] + Sockets
[2f01184e] + SparseArrays
[10745b16] + Statistics
[4607b0f0] + SuiteSparse
[fa267f1f] + TOML v1.0.0
[a4e569a6] + Tar v1.10.1
[8dfed614] + Test
[cf7118a7] + UUIDs
[4ec0a83e] + Unicode
[e66e0078] + CompilerSupportLibraries_jll v1.0.1+0
[deac9b47] + LibCURL_jll v7.84.0+0
[29816b5a] + LibSSH2_jll v1.10.2+0
[c8ffd9c3] + MbedTLS_jll v2.28.0+0
[14a3606d] + MozillaCACerts_jll v2022.2.1
[4536629a] + OpenBLAS_jll v0.3.20+0
[05823500] + OpenLibm_jll v0.8.1+0
[bea87d4a] + SuiteSparse_jll v5.10.1+0
[83775a58] + Zlib_jll v1.2.12+3
[8e850b90] + libblastrampoline_jll v5.1.1+0
[8e850ede] + nghttp2_jll v1.48.0+0
[3f19e933] + p7zip_jll v17.4.0+0
Info Packages marked with ⌃ and ⌅ have new versions available, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`
Precompiling project...
204 dependencies successfully precompiled in 77 seconds
julia> using KomaMRI
julia> KomaUI()
[ Info: Listening on: 127.0.0.1:2687, thread id: 1
[ Info: Loading Phantom (default)
Phantom object "brain2D_axial" successfully loaded!
[ Info: Loading Scanner (default)
B0 = 1.5 T
Gmax = 60.0 mT/m
Smax = 500 mT/m/ms
[ Info: Loading Sequence (default)
[ Info: Loading GPUs
2 CUDA capable device(s).
(0*) Quadro RTX 8000
(1 ) Quadro RTX 8000
[ Info: Currently using KomaMRICore v0.7.6
julia> ┌ Info: Running simulation in the GPU (Quadro RTX 8000)
│ koma_version = v"0.7.6"
│ sim_method = Bloch()
│ spins = 6506
│ time_points = 11079
└ adc_points = 10201
Progress: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| Time: 0:00:52
simulated_blocks: 22
rf_blocks: 1
acq_samples: 10201
52.299871 seconds (184.86 M allocations: 9.368 GiB, 4.05% gc time, 71.67% compilation time)
[ Info: Exporting to ISMRMRD file: /tmp/Koma_signal.mrd
[ Info: Running reconstruction of /tmp/Koma_signal.mrd
Hi!
We greatly appreciate your observations 😃.
We have been working in KomaMRI 0.8 which should be compatible with Julia 1.9 and 1.10.
It's strange that KomaMRI 0.7.5 isn't working in your environment with Julia 1.9. I just checked in my environment, and my Nvidia GPU is working. Could you share the steps and log messages from your machine?
Regarding one of your questions, the default behavior of KomaMRI is to detect any GPU devices and use one of them for simulation; otherwise, the CPU is utilized. This behavior is true for all Julia versions.
As you mentioned, indicating passing tests for GPU in the documentation is a great idea. So far, we only test GPU on local machines, and we are actively working on implementing automatic GPU tests (#147), similar to what we already have for CPU tests.
Could you please check when the new version of KomaMRI 0.8.0 is released tomorrow, if there are any problems in your specific environment?
Adding a table in the readme/documentation with the compatibility results (of the current Koma version) for CPU and GPU is a great idea. I am thinking of something like this:
Julia\Device | CPU (CI) | GPU (local) |
---|---|---|
Julia 1.9 (Windows) | ||
Julia 1.9 (Linux) | ||
Julia 1.9 (Mac) | ||
Julia 1.10 (Windows) | ||
Julia 1.10 (Linux) | ||
Julia 1.10 (Mac) | ||
Julia 1.11 (Windows) | ||
Julia 1.11 (Linux) | ||
Julia 1.11 (Mac) |
And when we use start using Builkite (#147):
Julia\Device | CPU | CUDA (Nvidia) | ROC (AMD) | Metal (Apple) | oneAPI (Intel) |
---|---|---|---|---|---|
Julia 1.9 | |||||
... |
Without using Buildkite, separating the results of the CI into different badges per Julia version could be done with #276. Or we could do it manually, but I am not a big fan of that.
The only package we really need to test in the GPU is KomaMRICore, I think the best would be to start testing with Buildkite.
@beorostica
It's strange that KomaMRI 0.7.5 isn't working in your environment with Julia 1.9. I just checked in my environment, and my Nvidia GPU is working. Could you share the steps and log messages from your machine?
It was julia 1.10.0 that was not working. I did not check 1.9, but guessed it was better to try 1.8 based on https://github.com/cncastillo/KomaMRI.jl/issues/145. It sounds like the 1.9 and cuda issues are now resolved. See below for 1.9 which works fine.
Could you please check when the new version of KomaMRI 0.8.0 is released tomorrow, if there are any problems in your specific environment?
Yes, will do!
help?>
search: ] [ = $ ; ( @ { " ) ? . } ⊽ ⊼ ⊻ ⊋ ⊊ ⊉ ⊈ ⊇ ⊆ ≥ ≤ ≢ ≡ ≠ ≉ ≈ ∪ ∩ ∛ √ ∘ ∌ ∋ ∉ ∈ ℯ π ÷ ~ | ^ \ > < : / - + * ' & % ! γ Q && if :: [] '' ?: {} -> () || do .= IO |> rm pi mv in im fd cp cd GC >> >= >: => ==
Welcome to Julia 1.9.4. The full manual is available at...
julia> KomaUI()
[ Info: Listening on: 127.0.0.1:3383, thread id: 1
[ Info: Loading Phantom (default)
Phantom object "brain2D_axial" successfully loaded!
[ Info: Loading Scanner (default)
B0 = 1.5 T
Gmax = 60.0 mT/m
Smax = 500 mT/m/ms
[ Info: Loading Sequence (default)
[ Info: Loading GPUs
2 CUDA capable device(s).
(0*) Quadro RTX 8000
(1 ) Quadro RTX 8000
[ Info: Currently using KomaMRICore v0.7.6
julia> ┌ Info: Running simulation in the GPU (Quadro RTX 8000)
│ koma_version = v"0.7.6"
│ sim_method = Bloch()
│ spins = 6506
│ time_points = 11079
└ adc_points = 10201
Progress: 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| Time: 0:00:50
simulated_blocks: 22
rf_blocks: 1
acq_samples: 10201
51.002694 seconds (95.57 M allocations: 6.437 GiB, 6.34% gc time, 90.85% compilation time)
[ Info: Exporting to ISMRMRD file: /tmp/Koma_signal.mrd
[ Info: Running reconstruction of /tmp/Koma_signal.mrd
@cncastillo
Adding a table in the readme/documentation with the compatibility results (of the current Koma version) for CPU and GPU is a great idea. I am thinking of something like this: Julia\Device CPU (CI) GPU (local) Julia 1.9 (Windows)
Julia 1.9 (Linux)
Julia 1.9 (Mac)
Julia 1.10 (Windows)
Julia 1.10 (Linux)
Julia 1.10 (Mac)
Julia 1.11 (Windows)
Julia 1.11 (Linux)
Julia 1.11 (Mac)And when we use start using Builkite (#147): Julia\Device CPU CUDA (Nvidia) ROC (AMD) Metal (Apple) oneAPI (Intel) Julia 1.9
...Without using Buildkite, separating the results of the CI into different badges per Julia version could be done with #276. Or we could do it manually, but I am not a big fan of that.
The only package we really need to test in the GPU is KomaMRICore, I think the best would be to start testing with Buildkite.
I'm not familiar with the specific tools mentioned, but sounds great, it should help users navigate the ever changing julia, cuda, etc. landscape.
Thanks again!
Here is the situation with julia 1.10:
(base) curt@green:~$ julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.10.0 (2023-12-25)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
julia> using KomaMRI
julia> KomaUI()
[ Info: Listening on: 127.0.0.1:4797, thread id: 1
[ Info: Loading Phantom (default)
Phantom object "brain2D_axial" successfully loaded!
[ Info: Loading Scanner (default)
B0 = 1.5 T
Gmax = 60.0 mT/m
Smax = 500 mT/m/ms
[ Info: Loading Sequence (default)
[ Info: Loading GPUs
2 CUDA capable device(s).
(0*) Quadro RTX 8000
(1 ) Quadro RTX 8000
[ Info: Currently using KomaMRICore v0.7.6
julia> MethodError: no method matching length(::Nothing)
Closest candidates are:
length(::Base.MethodSpecializations)
@ Base reflection.jl:1166
length(::Distributed.WorkerPool)
@ Distributed ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/Distributed/src/workerpool.jl:139
length(::Markdown.MD)
@ Markdown ~/.julia/juliaup/julia-1.10.0+0.x64.linux.gnu/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:28
...
Stacktrace:
[1] #s597#122
@ ~/.julia/packages/GPUCompiler/S3TWf/src/cache.jl:18 [inlined]
[2] var"#s597#122"(f::Any, tt::Any, ::Any, job::Any)
@ GPUCompiler ./none:0
[3] (::Core.GeneratedFunctionStub)(::UInt64, ::LineNumberNode, ::Any, ::Vararg{Any})
@ Core ./boot.jl:602
[4] cached_compilation(cache::Dict{UInt64, Any}, job::GPUCompiler.CompilerJob, compiler::typeof(CUDA.cufunction_compile), linker::typeof(CUDA.cufunction_link))
@ GPUCompiler ~/.julia/packages/GPUCompiler/S3TWf/src/cache.jl:71
[5] cufunction(f::GPUArrays.var"#broadcast_kernel#26", tt::Type{Tuple{CUDA.CuKernelContext, CUDA.CuDeviceVector{Float32, 1}, Base.Broadcast.Broadcasted{CUDA.CuArrayStyle{1}, Tuple{Base.OneTo{Int64}}, typeof(convert), Tuple{CUDA.CuRefType{Float32}, Base.Broadcast.Extruded{CUDA.CuDeviceVector{Float32, 1}, Tuple{Bool}, Tuple{Int64}}}}, Int64}}; name::Nothing, always_inline::Bool, kwargs::@Kwargs{})
@ CUDA ~/.julia/packages/CUDA/BbliS/src/compiler/execution.jl:300
[6] cufunction
@ ~/.julia/packages/CUDA/BbliS/src/compiler/execution.jl:293 [inlined]
[7] macro expansion
@ ~/.julia/packages/CUDA/BbliS/src/compiler/execution.jl:102 [inlined]
[8] #launch_heuristic#252
@ ~/.julia/packages/CUDA/BbliS/src/gpuarrays.jl:17 [inlined]
[9] launch_heuristic
@ ~/.julia/packages/CUDA/BbliS/src/gpuarrays.jl:15 [inlined]
[10] _copyto!
@ ~/.julia/packages/GPUArrays/5XhED/src/host/broadcast.jl:65 [inlined]
[11] copyto!
@ ~/.julia/packages/GPUArrays/5XhED/src/host/broadcast.jl:46 [inlined]
[12] copy
@ ~/.julia/packages/GPUArrays/5XhED/src/host/broadcast.jl:37 [inlined]
[13] materialize
@ ./broadcast.jl:903 [inlined]
[14] adapt_storage(T::Type{Float32}, xs::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer})
@ KomaMRICore ~/.julia/packages/KomaMRICore/wY77R/src/simulation/GPUFunctions.jl:90
[15] adapt_structure(to::Type, x::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer})
@ Adapt ~/.julia/packages/Adapt/cdaEv/src/Adapt.jl:57
[16] adapt
@ ~/.julia/packages/Adapt/cdaEv/src/Adapt.jl:40 [inlined]
[17] #162
@ ~/.julia/packages/KomaMRICore/wY77R/src/simulation/GPUFunctions.jl:88 [inlined]
[18] ExcludeWalk
@ ~/.julia/packages/Functors/rlD70/src/walks.jl:106 [inlined]
[19] (::Functors.CachedWalk{Functors.ExcludeWalk{Functors.DefaultWalk, KomaMRICore.var"#162#163"{DataType}, typeof(Functors.isleaf)}, Functors.NoKeyword})(::Function, ::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer})
@ Functors ~/.julia/packages/Functors/rlD70/src/walks.jl:146
[20] recurse
@ Functors ~/.julia/packages/Functors/rlD70/src/walks.jl:37 [inlined]
[21] map
@ Base ./tuple.jl:294 [inlined]
[22] map(f::Functors.var"#recurse#19"{Functors.CachedWalk{Functors.ExcludeWalk{Functors.DefaultWalk, KomaMRICore.var"#162#163"{DataType}, typeof(Functors.isleaf)}, Functors.NoKeyword}}, t::Tuple{String, CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, KomaMRICore.var"#115#130", KomaMRICore.var"#116#131", KomaMRICore.var"#117#132"})
@ Base ./tuple.jl:294
[23] map(::Function, ::@NamedTuple{name::String, x::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, y::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, z::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, ρ::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, T1::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, T2::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, T2s::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, Δw::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, Dλ1::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, Dλ2::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, Dθ::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, ux::KomaMRICore.var"#115#130", uy::KomaMRICore.var"#116#131", uz::KomaMRICore.var"#117#132"})
@ Base ./namedtuple.jl:269
[24] _map(f::Function, x::@NamedTuple{name::String, x::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, y::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, z::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, ρ::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, T1::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, T2::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, T2s::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, Δw::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, Dλ1::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, Dλ2::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, Dθ::CUDA.CuArray{Float32, 1, CUDA.Mem.DeviceBuffer}, ux::KomaMRICore.var"#115#130", uy::KomaMRICore.var"#116#131", uz::KomaMRICore.var"#117#132"})
@ Functors ~/.julia/packages/Functors/rlD70/src/walks.jl:1
[25] (::Functors.DefaultWalk)(::Function, ::Phantom{Float32})
@ Functors ~/.julia/packages/Functors/rlD70/src/walks.jl:76
[26] ExcludeWalk
@ ~/.julia/packages/Functors/rlD70/src/walks.jl:106 [inlined]
[27] (::Functors.CachedWalk{Functors.ExcludeWalk{Functors.DefaultWalk, KomaMRICore.var"#162#163"{DataType}, typeof(Functors.isleaf)}, Functors.NoKeyword})(::Function, ::Phantom{Float32})
@ Functors ~/.julia/packages/Functors/rlD70/src/walks.jl:146
[28] execute
@ Functors ~/.julia/packages/Functors/rlD70/src/walks.jl:38 [inlined]
[29] #fmap#28
@ Functors ~/.julia/packages/Functors/rlD70/src/maps.jl:11 [inlined]
[30] fmap
@ Functors ~/.julia/packages/Functors/rlD70/src/maps.jl:3 [inlined]
[31] paramtype
@ KomaMRICore ~/.julia/packages/KomaMRICore/wY77R/src/simulation/GPUFunctions.jl:88 [inlined]
[32] f32
@ KomaMRICore ~/.julia/packages/KomaMRICore/wY77R/src/simulation/GPUFunctions.jl:99 [inlined]
[33] |>(x::Phantom{Float32}, f::typeof(f32))
@ Base ./operators.jl:917
[34] simulate(obj::Phantom{Float64}, seq::Sequence, sys::Scanner; simParams::Dict{String, Any}, w::Blink.AtomShell.Window)
@ KomaMRICore ~/.julia/packages/KomaMRICore/wY77R/src/simulation/SimulatorCore.jl:201
[35] (::KomaMRI.var"#67#112"{String, String})(args::Int64)
@ KomaMRI ~/.julia/packages/KomaMRI/CVhId/src/KomaUI.jl:252
[36] #invokelatest#2
@ ./essentials.jl:887 [inlined]
[37] invokelatest
@ ./essentials.jl:884 [inlined]
[38] handle_message(o::Blink.Page, m::Dict{String, Any})
@ Blink ~/.julia/packages/Blink/tnO3a/src/rpc/callbacks.jl:7
[39] macro expansion
@ ~/.julia/packages/Lazy/9Xnd3/src/macros.jl:268 [inlined]
[40] ws_handler(ws::HTTP.WebSockets.WebSocket)
@ Blink ~/.julia/packages/Blink/tnO3a/src/content/server.jl:50
[41] (::Mux.var"#9#10"{Mux.App})(sock::HTTP.WebSockets.WebSocket)
@ Mux ~/.julia/packages/Mux/PipQ9/src/server.jl:48
[42] upgrade(f::Mux.var"#9#10"{Mux.App}, http::HTTP.Streams.Stream{HTTP.Messages.Request, HTTP.Connections.Connection{Sockets.TCPSocket}}; suppress_close_error::Bool, maxframesize::Int64, maxfragmentation::Int64, kw::@Kwargs{})
@ HTTP.WebSockets ~/.julia/packages/HTTP/bDoga/src/WebSockets.jl:440
[43] upgrade
@ ~/.julia/packages/HTTP/bDoga/src/WebSockets.jl:420 [inlined]
[44] (::Mux.var"#14#15"{Mux.App, Mux.App})(http::HTTP.Streams.Stream{HTTP.Messages.Request, HTTP.Connections.Connection{Sockets.TCPSocket}})
@ Mux ~/.julia/packages/Mux/PipQ9/src/server.jl:81
[45] #invokelatest#2
@ ./essentials.jl:887 [inlined]
[46] invokelatest
@ ./essentials.jl:884 [inlined]
[47] handle_connection(f::Function, c::HTTP.Connections.Connection{Sockets.TCPSocket}, listener::HTTP.Servers.Listener{Nothing, Sockets.TCPServer}, readtimeout::Int64, access_log::Nothing)
@ HTTP.Servers ~/.julia/packages/HTTP/bDoga/src/Servers.jl:450
[48] (::HTTP.Servers.var"#16#17"{Mux.var"#14#15"{Mux.App, Mux.App}, HTTP.Servers.Listener{Nothing, Sockets.TCPServer}, Set{HTTP.Connections.Connection}, Int64, Nothing, Base.Semaphore, HTTP.Connections.Connection{Sockets.TCPSocket}})()
@ HTTP.Servers ~/.julia/packages/HTTP/bDoga/src/Servers.jl:386
julia is hung at that point and will exit to shell with ctr-D
system info:
Computer
********
Summary
-------
-Computer-
Processor : AMD Ryzen Threadripper 3960X 24-Core Processor
Memory : 197776MB (9127MB used)
Machine Type : Desktop
Operating System : Ubuntu 18.04.6 LTS
User Name : root (root)
Date/Time : Wed 17 Jan 2024 04:08:34 PM CST
-Display-
Resolution : 5760x1152 pixels
OpenGL Renderer : Quadro RTX 8000/PCIe/SSE2
X11 Vendor : The X.Org Foundation
-Audio Devices-
Audio Adapter : HDA-Intel - HDA NVidia
Audio Adapter : HDA-Intel - HD-Audio Generic
Audio Adapter : HDA-Intel - HDA NVidia
Audio Adapter : USB-Audio - USB Device 0x46d
Audio Adapter : USB-Audio - Dell AC511 USB SoundBar
Audio Adapter : USB-Audio - ALC1220-VB-DT
-Input Devices-
Power Button
Power Button
ASRock LED Controller
PixArt Dell MS116 USB Optical Mouse
Dell Dell QuietKey Keyboard
Dell Dell AC511 USB SoundBar
Generic USB Audio Consumer Control
Generic USB Audio
HDA NVidia HDMI/DP,pcm:3
HDA NVidia HDMI/DP,pcm:7
HDA NVidia HDMI/DP,pcm:8
HDA NVidia HDMI/DP,pcm:3
HDA NVidia HDMI/DP,pcm:9
HDA NVidia HDMI/DP,pcm:7
HDA NVidia HDMI/DP,pcm:10
HDA NVidia HDMI/DP,pcm:8
HDA NVidia HDMI/DP,pcm:11
HDA NVidia HDMI/DP,pcm:9
HDA NVidia HDMI/DP,pcm:12
HDA NVidia HDMI/DP,pcm:10
HDA NVidia HDMI/DP,pcm:11
HDA NVidia HDMI/DP,pcm:12
UVC Camera (046d:0825)
-Printers (CUPS)-
Brother_MFC_L2750DW_series
MFC-L2750DW
MFCL2750DW : <i>Default</i>
-SCSI Disks-
PHD 3.0 Silicon-Power
Operating System
----------------
-Version-
Kernel : Linux 5.4.0-169-generic (x86_64)
Version : #187~18.04.1-Ubuntu SMP Fri Nov 24 15:41:14 UTC 2023
C Library : GNU C Library / (Ubuntu GLIBC 2.27-3ubuntu1.6+esm1) 2.27
Distribution : Ubuntu 18.04.6 LTS
-Current Session-
Computer Name : green
User Name : root (root)
Language : en_US.UTF-8 (en_US.UTF-8)
Home Directory : /home/curt
-Misc-
Uptime : 5 hours 42 minutes
Load Average : 0.20, 0.46, 0.45
Available entropy in /dev/random : 256 bits (medium)
Kernel Modules
--------------
-Loaded Modules-
snd_seq_dummy : ALSA sequencer MIDI-through client
rfcomm : Bluetooth RFCOMM ver 1.11
nf_conntrack_netlink
nfnetlink
xfrm_user
xfrm_algo
xt_addrtype : Xtables: address type match
br_netfilter : Linux ethernet netfilter firewall bridge
xt_CHECKSUM : Xtables: checksum modification
iptable_mangle : iptables mangle table
xt_MASQUERADE : Xtables: automatic-address SNAT
iptable_nat
nf_nat
xt_conntrack : Xtables: connection tracking state match
nf_conntrack
nf_defrag_ipv6
nf_defrag_ipv4
ipt_REJECT : Xtables: packet "rejection" target for IPv4
nf_reject_ipv4
xt_tcpudp : Xtables: TCP, UDP and UDP-Lite match
bridge
stp
llc : LLC IEEE 802.2 core support
uvcvideo : USB Video Class driver
videobuf2_vmalloc : vmalloc memory handling routines for videobuf2
videobuf2_memops : common memory handling routines for videobuf2
videobuf2_v4l2 : Driver helper framework for Video for Linux 2
usblp : USB Printer Device Class driver
videobuf2_common : Media buffer core framework
ebtable_filter
ebtables
ip6table_filter : ip6tables filter table
ip6_tables : IPv6 packet filter
iptable_filter : iptables filter table
bpfilter
aufs : aufs -- Advanced multi layered unification filesystem
vboxnetadp : Oracle VM VirtualBox Network Adapter Driver
vboxnetflt : Oracle VM VirtualBox Network Filter Driver
overlay : Overlay filesystem
vboxdrv : Oracle VM VirtualBox Support Driver
cmac : CMAC keyed hash algorithm
bnep : Bluetooth BNEP ver 1.3
nls_iso8859_1
nvidia_uvm
snd_hda_codec_hdmi : HDMI HD-audio codec
input_leds : Input -> LEDs Bridge
joydev : Joystick device interfaces
binfmt_misc
nvidia_drm
nvidia_modeset
snd_usb_audio : USB Audio
snd_usbmidi_lib : USB Audio/MIDI helper module
btusb : Generic Bluetooth USB driver ver 0.8
btrtl : Bluetooth support for Realtek devices ver 0.1
btbcm : Bluetooth support for Broadcom devices ver 0.1
btintel : Bluetooth support for Intel devices ver 0.1
bluetooth : Bluetooth Core ver 2.22
ecdh_generic : ECDH generic algorithm
ecc
edac_mce_amd : AMD MCE decoder
kvm_amd
kvm
nvidia
crct10dif_pclmul : T10 DIF CRC calculation accelerated with PCLMULQDQ.
crc32_pclmul
ghash_clmulni_intel : GHASH hash function, accelerated by PCLMULQDQ-NI
aesni_intel : Rijndael (AES) Cipher Algorithm, Intel AES-NI instructions optimized
iwlmvm : The new Intel(R) wireless AGN driver for Linux
crypto_simd
cryptd : Software async crypto daemon
glue_helper
mac80211 : IEEE 802.11 subsystem
snd_hda_intel : Intel HDA driver
snd_intel_dspcfg : Intel DSP config driver
snd_seq_midi : Advanced Linux Sound Architecture sequencer MIDI synth.
libarc4
snd_seq_midi_event : MIDI byte <-> sequencer event coder
snd_hda_codec : HDA codec core
wmi_bmof : WMI embedded Binary MOF driver
snd_hda_core : HD-audio bus
snd_hwdep : Hardware dependent layer
snd_rawmidi : Midlevel RawMidi code for ALSA.
ucsi_ccg : UCSI driver for Cypress CCGx Type-C controller
typec_ucsi : USB Type-C Connector System Software Interface driver
typec : USB Type-C Connector Class
snd_pcm : Midlevel PCM code for ALSA.
iwlwifi : Intel(R) Wireless WiFi driver for Linux
snd_seq : Advanced Linux Sound Architecture sequencer.
r8125 : Realtek r8125 Ethernet controller driver
snd_seq_device : ALSA sequencer device management
snd_timer : ALSA timer interface
cfg80211 : wireless configuration support
snd : Advanced Linux Sound Architecture driver for soundcards.
drm_kms_helper : DRM KMS helper
ccp : AMD Secure Processor driver
mxm_wmi : MXM WMI Driver
drm : DRM shared core routines
fb_sys_fops : Generic file read (fb in system RAM)
soundcore : Core sound module
syscopyarea : Generic copyarea (sys-to-sys)
sysfillrect : Generic fill rectangle (sys-to-sys)
sysimgblt : 1-bit/8-bit to 1-32 bit color expansion (sys-to-sys)
k10temp : AMD Family 10h+ CPU core temperature monitor
mac_hid
sch_fq_codel
v4l2loopback : V4L2 loopback video device
videodev : Video4Linux2 core driver
mc : Device node registration for media drivers
parport_pc : PC-style parallel port driver
ppdev
lp
parport
ip_tables : IPv4 packet filter
x_tables : {ip,ip6,arp,eb}_tables backend module
autofs4
raid10 : RAID10 (striped mirror) personality for MD
raid456 : RAID4/5/6 (striping with parity) personality for MD
async_raid6_recov : asynchronous RAID-6 recovery api
async_memcpy : asynchronous memcpy api
async_pq : asynchronous raid6 syndrome generation/validation
async_xor : asynchronous xor/xor-zero-sum api
async_tx : Asynchronous Bulk Memory Transactions API
xor
raid6_pq : RAID6 Q-syndrome calculations
libcrc32c : CRC32c (Castagnoli) calculations
raid1 : RAID1 (mirroring) personality for MD
raid0 : RAID0 (striping) personality for MD
multipath : simple multi-path personality for MD
linear : Linear device concatenation personality for MD
hid_generic : HID generic driver
usbhid : USB HID core driver
uas
usb_storage : USB Mass Storage driver for Linux
hid
nvme
ahci : AHCI SATA low-level driver
libahci : Common AHCI SATA low-level routines
atlantic : aQuantia Corporation(R) Network Driver
nvme_core
i2c_piix4 : PIIX4 SMBus driver
i2c_nvidia_gpu : Nvidia GPU I2C controller Driver
wmi : ACPI-WMI Mapping Driver
Thank you for your fast response @curtcorum. However, I forgot to mention that the new version of KomaMRI 0.8.0 is scheduled for release at 20:00 Chilean time (UTC-3). I will notify you when the Julia registries are updated with the new KomaMRI version.
The new version 0.8.0 of KomaMRI has been released 😄! @curtcorum let us know if you have any issues in your environment.
If you face any problems, make sure that after running:
using Pkg
begin
println("OS $(Base.Sys.MACHINE)") # OS
println("Julia $VERSION") # Julia version
# Koma sub-packages
for (_, pkg) in filter(((_, pkg),) -> occursin("KomaMRI", pkg.name), Pkg.dependencies())
println("$(pkg.name) $(pkg.version)")
end
end
you have the following output:
OS <your-OS>
Julia <your-julia-version-1.9-or-1.10>
KomaMRIPlots 0.8.0
KomaMRIFiles 0.8.0
KomaMRI 0.8.0
KomaMRICore 0.8.0
KomaMRIBase 0.8.1
We added a table to the README with the current compat.
I will close the issue, but feel free to re-open it if you feel we are missing something :smile:.
FYI all looks great on the main page, very clear what is expected to work with Julia versions.
I did an upgrade to KomaMRI latest, and all seems well:
(base) curt@green:~$ julia
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.9.4 (2023-11-14)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
(@v1.9) pkg> ?
Welcome to the Pkg REPL-mode. To return to the julia> prompt, either press backspace when the input line is empty or press Ctrl+C.
Full documentation available at https://pkgdocs.julialang.org/
Synopsis
pkg> cmd [opts] [args]
Multiple commands can be given on the same line by interleaving a ; between the commands. Some commands have an alias, indicated below.
Commands
activate: set the primary environment the package manager manipulates
add: add packages to project
build: run the build script for packages
compat: edit compat entries in the current Project and re-resolve
develop, dev: clone the full package repo locally for development
free: undoes a pin, develop, or stops tracking a repo
gc: garbage collect packages not used for a significant time
generate: generate files for a new project
Installed CUDA_Runtime_Discovery ─── v0.2.2
Installed UnsafeAtomicsLLVM ──────── v0.1.3
Installed SentinelArrays ─────────── v1.4.1
Installed Kaleido_jll ────────────── v0.1.0+0
Installed MRIOperators ───────────── v0.2.1
Installed PooledArrays ───────────── v1.4.3
Installed KomaMRICore ────────────── v0.8.0
Installed LinearOperatorCollection ─ v1.1.2
Installed LLVMExtra_jll ──────────── v0.0.27+1
Installed NVTX ───────────────────── v0.3.4
Installed KomaMRIFiles ───────────── v0.8.0
Installed InvertedIndices ────────── v1.3.0
Installed Interpolations ─────────── v0.15.1
Installed KernelAbstractions ─────── v0.9.16
Installed UnsafeAtomics ──────────── v0.2.1
Installed Atomix ─────────────────── v0.1.0
Installed GPUArraysCore ──────────── v0.1.6
Installed Crayons ────────────────── v4.1.1
Installed Adapt ──────────────────── v4.0.1
Installed GPUCompiler ────────────── v0.25.0
Installed MRIFiles ───────────────── v0.3.0
Installed LLVM ───────────────────── v6.4.2
Installed HDF5 ───────────────────── v0.17.1
Installed JuliaNVTXCallbacks_jll ─── v0.2.1+0
Installed AxisAlgorithms ─────────── v1.1.0
Installed Wavelets ───────────────── v0.10.0
Installed WoodburyMatrices ───────── v1.0.0
Installed StringManipulation ─────── v0.3.4
Installed PrettyTables ───────────── v2.3.1
Installed KomaMRIPlots ───────────── v0.8.0
Installed KomaMRIBase ────────────── v0.8.1
Installed MRIReco ────────────────── v0.8.0
Installed KomaMRI ────────────────── v0.8.0
Installed CUDA ───────────────────── v5.2.0
Downloaded artifact: NVTX
Downloaded artifact: Kaleido
Downloaded artifact: LLVMExtra
Downloaded artifact: JuliaNVTXCallbacks
Updating `~/.julia/environments/v1.9/Project.toml`
[6a340f8b] ↑ KomaMRI v0.7.5 ⇒ v0.8.0
Updating `~/.julia/environments/v1.9/Manifest.toml`
Downloaded artifact: CUDA_Driver
[79e6a3ab] ↑ Adapt v3.7.2 ⇒ v4.0.1
[a9b6321e] + Atomix v0.1.0
[13072b0f] ↑ AxisAlgorithms v1.0.1 ⇒ v1.1.0
⌃ [ab4f0b2a] ↑ BFloat16s v0.2.0 ⇒ v0.4.2
[fa961155] ↑ CEnum v0.4.2 ⇒ v0.5.0
[052768ef] ↑ CUDA v3.13.1 ⇒ v5.2.0
[1af6417a] + CUDA_Runtime_Discovery v0.2.2
[a8cc5b0e] + Crayons v4.1.1
[a93c6f00] + DataFrames v1.6.1
[7a1cc6ca] ↑ FFTW v1.7.2 ⇒ v1.8.0
[0c68f7d7] ↑ GPUArrays v8.8.1 ⇒ v10.0.2
[46192b85] ↑ GPUArraysCore v0.1.5 ⇒ v0.1.6
[61eb1bfa] ↑ GPUCompiler v0.17.3 ⇒ v0.25.0
[f67ccb44] ↑ HDF5 v0.16.16 ⇒ v0.17.1
[a98d9a8b] ↑ Interpolations v0.14.7 ⇒ v0.15.1
[41ab1584] + InvertedIndices v1.3.0
[033835bb] - JLD2 v0.4.44
[63c18a36] + KernelAbstractions v0.9.16
[6a340f8b] ↑ KomaMRI v0.7.5 ⇒ v0.8.0
[d0bc0b20] + KomaMRIBase v0.8.1
[4baa4f4d] ↑ KomaMRICore v0.7.6 ⇒ v0.8.0
[fcf631a6] + KomaMRIFiles v0.8.0
[76db0263] ↑ KomaMRIPlots v0.7.7 ⇒ v0.8.0
[929cbde3] ↑ LLVM v4.17.1 ⇒ v6.4.2
[8b046642] + LLVMLoopInfo v1.0.0
[a4a2c56f] + LinearOperatorCollection v1.1.2
[f7771a9a] ↑ MRIBase v0.3.3 ⇒ v0.4.2
[5a6f062f] ↑ MRIFiles v0.1.6 ⇒ v0.3.0
[fb1137e3] ↑ MRIOperators v0.1.3 ⇒ v0.2.1
[bdf86e05] ↑ MRIReco v0.7.1 ⇒ v0.8.0
[5da4648a] + NVTX v0.3.4
[65ce6f38] - PackageExtensionCompat v1.0.2
[2dfb63ee] + PooledArrays v1.4.3
[08abe8d2] + PrettyTables v2.3.1
⌅ [1e9c538a] ↑ RegularizedLeastSquares v0.9.1 ⇒ v0.10.0
[6c6a2e73] + Scratch v1.2.1
[91c51154] + SentinelArrays v1.4.1
[a5ff1dd3] - SparsityOperators v0.4.7
[892a3eda] + StringManipulation v0.3.4
[013be700] + UnsafeAtomics v0.2.1
[d80eeb9a] + UnsafeAtomicsLLVM v0.1.3
[29a6e085] ↑ Wavelets v0.9.5 ⇒ v0.10.0
[efce3f68] ↑ WoodburyMatrices v0.5.6 ⇒ v1.0.0
[4ee394cb] + CUDA_Driver_jll v0.7.0+1
→ [76a88914] + CUDA_Runtime_jll v0.11.1+0
[9c1d0b0a] + JuliaNVTXCallbacks_jll v0.2.1+0
⌅ [f7e6163d] ↓ Kaleido_jll v0.2.1+0 ⇒ v0.1.0+0
[dad2f222] ↑ LLVMExtra_jll v0.0.18+0 ⇒ v0.0.27+1
[e98f9f5b] + NVTX_jll v3.1.0+2
Info Packages marked with → are not downloaded, use `instantiate` to download
Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`
Downloaded artifact: CUDA_Runtime
Precompiling project...
72 dependencies successfully precompiled in 142 seconds. 193 already precompiled.
(@v1.9) pkg> st
Status `~/.julia/environments/v1.9/Project.toml`
[6a340f8b] KomaMRI v0.8.0
julia> using KomaMRI
julia> KomaUI()
[ Info: Listening on: 127.0.0.1:8720, thread id: 1
[ Info: Loaded `Scanner` to `sys_ui[]`
[ Info: Loaded `Sequence` to `seq_ui[]`
[ Info: Loaded `Phantom` to `obj_ui[]`
[ Info: Loaded `RawAcquisitionData` to `raw_ui[]`
[ Info: Loaded image to `img_ui[]`
┌ Info: 2 CUDA capable device(s).
│ (0*) = "Quadro RTX 8000"
└ (1 ) = "Quadro RTX 8000"
┌ Info: Currently using package versions
│ KomaMRI = "0.8.0"
│ KomaMRICore = "0.8.0"
│ KomaMRIFiles = "0.8.0"
└ KomaMRIPlots = "0.8.0"
julia> ┌ Info: Running simulation in the GPU (Quadro RTX 8000)
│ koma_version = v"0.8.0"
│ sim_method = Bloch()
│ spins = 6506
│ time_points = 11079
└ adc_points = 10201
Progress: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| Time: 0:00:23
simulated_blocks: 22
rf_blocks: 1
acq_samples: 10201
23.642343 seconds (40.75 M allocations: 2.685 GiB, 3.85% gc time, 85.56% compilation time: <1% of which was recompilation)
[ Info: Exporting to ISMRMRD file: /tmp/Koma_signal.mrd
┌ Info: Running simulation in the GPU (Quadro RTX 8000)
│ koma_version = v"0.8.0"
│ sim_method = Bloch()
│ spins = 6506
│ time_points = 11079
└ adc_points = 10201
0.060539 seconds (112.34 k allocations: 6.220 MiB, 0.01% compilation time)
[ Info: Exporting to ISMRMRD file: /tmp/Koma_signal.mrd
[ Info: Running reconstruction ...
julia>
julia> using Pkg
julia> begin
println("OS $(Base.Sys.MACHINE)") # OS
println("Julia $VERSION") # Julia version
# Koma sub-packages
for (_, pkg) in filter(((_, pkg),) -> occursin("KomaMRI", pkg.name), Pkg.dependencies())
println("$(pkg.name) $(pkg.version)")
end
end
OS x86_64-linux-gnu
Julia 1.9.4
KomaMRIPlots 0.8.0
KomaMRIFiles 0.8.0
KomaMRI 0.8.0
KomaMRICore 0.8.0
KomaMRIBase 0.8.1
julia>
Julia 1.10 new environment also works:
(base) curt@green:~$ julia +1.10
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.10.0 (2023-12-25)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
(@v1.10) pkg> st
Status `~/.julia/environments/v1.10/Project.toml` (empty project)
(@v1.10) pkg> ?
Welcome to the Pkg REPL-mode. To return to the julia> prompt, either press backspace when the input line is empty or press Ctrl+C.
Full documentation available at https://pkgdocs.julialang.org/
Synopsis
pkg> cmd [opts] [args]
Multiple commands can be given on the same line by interleaving a ; between the commands. Some commands have an alias, indicated below.
Commands
activate: set the primary environment the package manager manipulates
add: add packages to project
build: run the build script for packages
compat: edit compat entries in the current Project and re-resolve
develop, dev: clone the full package repo locally for development
free: undoes a pin, develop, or stops tracking a repo
gc: garbage collect packages not used for a significant time
generate: generate files for a new project
help, ?: show this message
instantiate: downloads all the dependencies for the project
pin: pins the version of packages
precompile: precompile all the project dependencies
redo: redo the latest change to the active project
remove, rm: remove packages from project or manifest
resolve: resolves to update the manifest from changes in dependencies of developed packages
status, st: summarize contents of and changes to environment
test: run tests for packages
undo: undo the latest change to the active project
update, up: update packages in manifest
why: shows why a package is in the manifest
registry add: add package registries
registry remove, rm: remove package registries
registry status, st: information about installed registries
registry update, up: update package registries
(@v1.10) pkg> add KomaMRI
Resolving package versions...
Downloaded artifact: LLVMExtra
Updating `~/.julia/environments/v1.10/Project.toml`
[6a340f8b] + KomaMRI v0.8.0
Updating `~/.julia/environments/v1.10/Manifest.toml`
[14f7f29c] + AMD v0.5.3
[621f4979] + AbstractFFTs v1.5.0
[7f219486] + AbstractNFFTs v0.8.2
[79e6a3ab] + Adapt v4.0.1
[dce04be8] + ArgCheck v2.3.0
[4fba245c] + ArrayInterface v7.7.0
[bf4720bc] + AssetRegistry v0.1.0
[a9b6321e] + Atomix v0.1.0
[13072b0f] + AxisAlgorithms v1.1.0
[39de3d68] + AxisArrays v0.4.7
⌃ [ab4f0b2a] + BFloat16s v0.4.2
[198e06fe] + BangBang v0.3.39
[9718e550] + Baselet v0.1.1
[26cce99e] + BasicInterpolators v0.7.1
[d1d4a3ce] + BitFlags v0.1.8
[62783981] + BitTwiddlingConvenienceFunctions v0.1.5
[ad839575] + Blink v0.12.9
[e1450e63] + BufferedStreams v1.2.1
[fa961155] + CEnum v0.5.0
[2a0fbf3d] + CPUSummary v0.2.4
[70588ee8] + CSSUtil v0.1.1
[052768ef] + CUDA v5.2.0
[1af6417a] + CUDA_Runtime_Discovery v0.2.2
[49dc2e85] + Calculus v0.5.1
[d360d2e6] + ChainRulesCore v1.19.1
[944b1d66] + CodecZlib v0.7.3
[35d6a980] + ColorSchemes v3.24.0
[3da002f7] + ColorTypes v0.11.4
[c3611d14] + ColorVectorSpace v0.10.0
[5ae59095] + Colors v0.12.10
[34da2185] + Compat v4.12.0
[a33af91c] + CompositionsBase v0.1.2
[f0e56b4a] + ConcurrentUtilities v2.3.0
[187b0558] + ConstructionBase v1.5.4
[6add18c4] + ContextVariablesX v0.1.3
[adafc99b] + CpuId v0.3.1
[a8cc5b0e] + Crayons v4.1.1
[717857b8] + DSP v0.7.9
[9a962f9c] + DataAPI v1.15.0
[a93c6f00] + DataFrames v1.6.1
[864edb3b] + DataStructures v0.18.16
[e2d170a0] + DataValueInterfaces v1.0.0
[244e2a9f] + DefineSingletons v0.1.2
[8bb1440f] + DelimitedFiles v1.9.1
[31c24e10] + Distributions v0.25.107
[ffbed154] + DocStringExtensions v0.9.3
[fa6b7ba4] + DualNumbers v0.6.8
[460bff9d] + ExceptionUnwrapping v0.1.10
[e2ba6199] + ExprTools v0.1.10
[7a1cc6ca] + FFTW v1.8.0
[cc61a311] + FLoops v0.2.1
[b9860ae5] + FLoopsBase v0.1.1
[9aa1b823] + FastClosures v0.3.2
[5789e2e9] + FileIO v1.16.2
[1a297f60] + FillArrays v1.9.3
[53c48c17] + FixedPointNumbers v0.8.4
[de31a74c] + FunctionalCollections v0.5.0
[d9f16b24] + Functors v0.4.5
[0c68f7d7] + GPUArrays v10.0.2
[46192b85] + GPUArraysCore v0.1.6
[61eb1bfa] + GPUCompiler v0.25.0
[f67ccb44] + HDF5 v0.17.1
[cd3eb016] + HTTP v1.10.1
[9fb69e20] + Hiccup v0.2.2
[3e5b6fbb] + HostCPUFeatures v0.1.16
[34004b35] + HypergeometricFunctions v0.3.23
[615f187c] + IfElse v0.1.1
[22cec73e] + InitialValues v0.3.1
[842dd82b] + InlineStrings v1.4.0
[c601a237] + Interact v0.10.5
[d3863d7c] + InteractBase v0.10.10
[a98d9a8b] + Interpolations v0.15.1
[8197267c] + IntervalSets v0.7.8
[41ab1584] + InvertedIndices v1.3.0
[92d709cd] + IrrationalConstants v0.2.2
[c8e1da08] + IterTools v1.10.0
[42fd0dbc] + IterativeSolvers v0.9.3
[82899510] + IteratorInterfaceExtensions v1.0.0
[692b3bcd] + JLLWrappers v1.5.0
[97c1335a] + JSExpr v0.5.4
[682c06a0] + JSON v0.21.4
[b14d175d] + JuliaVariables v0.2.4
[63c18a36] + KernelAbstractions v0.9.16
[bcebb21b] + Knockout v0.2.6
[6a340f8b] + KomaMRI v0.8.0
[d0bc0b20] + KomaMRIBase v0.8.1
[4baa4f4d] + KomaMRICore v0.8.0
[fcf631a6] + KomaMRIFiles v0.8.0
[76db0263] + KomaMRIPlots v0.8.0
[40e66cde] + LDLFactorizations v0.10.1
[929cbde3] + LLVM v6.4.2
[8b046642] + LLVMLoopInfo v1.0.0
[b964fa9f] + LaTeXStrings v1.3.1
[10f19ff3] + LayoutPointers v0.1.15
[50d2b5c4] + Lazy v0.15.1
[9c8b4983] + LightXML v0.9.1
[a4a2c56f] + LinearOperatorCollection v1.1.2
[5c8ed15e] + LinearOperators v2.6.0
[2ab3a3ac] + LogExpFunctions v0.3.26
[e6f89c97] + LoggingExtras v1.0.3
[898213cb] + LowRankApprox v0.5.5
[e65ccdef] + LowRankMatrices v1.0.0
[23992714] + MAT v0.10.6
[d8e11817] + MLStyle v0.4.17
[3da0fdf6] + MPIPreferences v0.1.10
[f7771a9a] + MRIBase v0.4.2
[5a6f062f] + MRIFiles v0.3.0
[fb1137e3] + MRIOperators v0.2.1
[bdf86e05] + MRIReco v0.8.0
[1914dd2f] + MacroTools v0.5.13
[d125e4d3] + ManualMemory v0.1.8
[739be429] + MbedTLS v1.1.9
[442fdcdd] + Measures v0.3.2
[c03570c3] + Memoize v0.4.4
[128add7d] + MicroCollections v0.1.4
[e1d29d7a] + Missings v1.1.0
[ffc61752] + Mustache v1.0.19
[a975b10e] + Mux v1.0.1
[efe261a4] + NFFT v0.13.3
[7424e34d] + NFFTTools v0.2.6
[5da4648a] + NVTX v0.3.4
[77ba4419] + NaNMath v1.0.2
[71a1bf82] + NameResolution v0.1.5
[4d1e1d77] + Nullables v1.0.0
[510215fc] + Observables v0.5.5
[6fe1bfb0] + OffsetArrays v1.13.0
[4d8831e6] + OpenSSL v1.4.1
[bac558e1] + OrderedCollections v1.6.3
[90014a1f] + PDMats v0.11.31
[d96e819e] + Parameters v0.12.3
[69de0a69] + Parsers v2.8.1
[fa939f87] + Pidfile v1.3.0
[a03496cd] + PlotlyBase v0.8.19
[f0f68f2c] + PlotlyJS v0.18.12
[f27b6e38] + Polynomials v4.0.6
[2dfb63ee] + PooledArrays v1.4.3
[aea7be01] + PrecompileTools v1.2.0
[21216c6a] + Preferences v1.4.1
[8162dcfd] + PrettyPrint v0.2.0
[08abe8d2] + PrettyTables v2.3.1
[92933f4c] + ProgressMeter v1.9.0
[1fd47b50] + QuadGK v2.9.4
[74087812] + Random123 v1.6.2
[e6cf234a] + RandomNumbers v1.5.3
[b3c3ace0] + RangeArrays v0.3.2
[c84ed2f1] + Ratios v0.4.5
[3cdcf5f2] + RecipesBase v1.3.4
[189a3867] + Reexport v1.2.2
[42d2dcc6] + Referenceables v0.1.3
⌅ [1e9c538a] + RegularizedLeastSquares v0.10.0
[ae029012] + Requires v1.3.0
[79098fc4] + Rmath v0.7.1
[94e857df] + SIMDTypes v0.1.0
[6ef1bc8b] + Scanf v0.5.4
[6c6a2e73] + Scratch v1.2.1
[91c51154] + SentinelArrays v1.4.1
[efcf1570] + Setfield v1.1.1
[777ac1f9] + SimpleBufferStream v1.1.0
[66db9d55] + SnoopPrecompile v1.0.3
[a2af1166] + SortingAlgorithms v1.2.1
[276daf66] + SpecialFunctions v2.3.1
[171d559e] + SplittablesBase v0.1.15
[aedffcd0] + Static v0.8.8
[0d7ed370] + StaticArrayInterface v1.5.0
[90137ffa] + StaticArrays v1.9.1
[1e83bf80] + StaticArraysCore v1.4.2
[82ae8749] + StatsAPI v1.7.0
⌅ [2913bbd2] + StatsBase v0.33.21
[4c63d2b9] + StatsFuns v1.3.0
[892a3eda] + StringManipulation v0.3.4
[3783bdb8] + TableTraits v1.0.1
[bd369af6] + Tables v1.11.1
[62fd8b95] + TensorCore v0.1.1
[ac1d9e8a] + ThreadsX v0.1.11
[a759f4b9] + TimerOutputs v0.5.23
[3bb67fe8] + TranscodingStreams v0.10.2
[28d57a85] + Transducers v0.4.80
[5c2747f8] + URIs v1.5.1
[3a884ed6] + UnPack v1.0.2
[1986cc42] + Unitful v1.19.0
[013be700] + UnsafeAtomics v0.2.1
[d80eeb9a] + UnsafeAtomicsLLVM v0.1.3
[3d5dd08c] + VectorizationBase v0.21.65
[29a6e085] + Wavelets v0.10.0
[0f1e0344] + WebIO v0.8.21
[104b5d7c] + WebSockets v1.6.0
[cc8bc4a8] + Widgets v0.6.6
[efce3f68] + WoodburyMatrices v1.0.0
[4ee394cb] + CUDA_Driver_jll v0.7.0+1
[76a88914] + CUDA_Runtime_jll v0.11.1+0
[f5851436] + FFTW_jll v3.3.10+0
⌃ [0234f1f7] + HDF5_jll v1.14.2+1
[e33a78d0] + Hwloc_jll v2.10.0+0
[1d5cc7b8] + IntelOpenMP_jll v2024.0.2+0
[9c1d0b0a] + JuliaNVTXCallbacks_jll v0.2.1+0
⌅ [f7e6163d] + Kaleido_jll v0.1.0+0
[dad2f222] + LLVMExtra_jll v0.0.27+1
[1d63c593] + LLVMOpenMP_jll v15.0.7+0
[94ce4f54] + Libiconv_jll v1.17.0+0
[856f044c] + MKL_jll v2024.0.0+0
[7cb0a576] + MPICH_jll v4.1.2+1
[f1f71cc9] + MPItrampoline_jll v5.3.1+1
[9237b28f] + MicrosoftMPI_jll v10.1.4+1
[e98f9f5b] + NVTX_jll v3.1.0+2
[fe0851c0] + OpenMPI_jll v5.0.1+0
[458c3c95] + OpenSSL_jll v3.0.12+0
[efe28fd5] + OpenSpecFun_jll v0.5.5+0
[32165bc3] + PMIx_jll v4.2.7+0
[f50d1b31] + Rmath_jll v0.4.0+0
[02c8fc9c] + XML2_jll v2.12.2+0
[477f73a3] + libaec_jll v1.0.6+1
[1080aeaf] + libevent_jll v2.1.13+1
[eb928a42] + prrte_jll v3.0.2+0
[0dad84c5] + ArgTools v1.1.1
[56f22d72] + Artifacts
[2a0f44e3] + Base64
[ade2ca70] + Dates
[8ba89e20] + Distributed
[f43a241f] + Downloads v1.6.0
[7b1f6079] + FileWatching
[9fa8497b] + Future
[b77e0a4c] + InteractiveUtils
[4af54fe1] + LazyArtifacts
[b27032c2] + LibCURL v0.6.4
[76f85450] + LibGit2
[8f399da3] + Libdl
[37e2e46d] + LinearAlgebra
[56ddb016] + Logging
[d6f4376e] + Markdown
[a63ad114] + Mmap
[ca575930] + NetworkOptions v1.2.0
[44cfe95a] + Pkg v1.10.0
[de0858da] + Printf
[3fa0cd96] + REPL
[9a3f8284] + Random
[ea8e919c] + SHA v0.7.0
[9e88b42a] + Serialization
[1a1011a3] + SharedArrays
[6462fe0b] + Sockets
[2f01184e] + SparseArrays v1.10.0
[10745b16] + Statistics v1.10.0
[4607b0f0] + SuiteSparse
[fa267f1f] + TOML v1.0.3
[a4e569a6] + Tar v1.10.0
[8dfed614] + Test
[cf7118a7] + UUIDs
[4ec0a83e] + Unicode
[e66e0078] + CompilerSupportLibraries_jll v1.0.5+1
[deac9b47] + LibCURL_jll v8.4.0+0
[e37daf67] + LibGit2_jll v1.6.4+0
[29816b5a] + LibSSH2_jll v1.11.0+1
[c8ffd9c3] + MbedTLS_jll v2.28.2+1
[14a3606d] + MozillaCACerts_jll v2023.1.10
[4536629a] + OpenBLAS_jll v0.3.23+2
[05823500] + OpenLibm_jll v0.8.1+2
[bea87d4a] + SuiteSparse_jll v7.2.1+1
[83775a58] + Zlib_jll v1.2.13+1
[8e850b90] + libblastrampoline_jll v5.8.0+1
[8e850ede] + nghttp2_jll v1.52.0+1
[3f19e933] + p7zip_jll v17.4.0+2
Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`
Precompiling project...
256 dependencies successfully precompiled in 86 seconds. 12 already precompiled.
1 dependency had output during precompilation:
┌ AbstractNFFTs
│ WARNING: method definition for #plan_nfft#3 at /home/curt/.julia/packages/AbstractNFFTs/Xd3qS/src/derived.jl:16 declares type variable D but does not use it.
│ WARNING: method definition for #plan_nfft#4 at /home/curt/.julia/packages/AbstractNFFTs/Xd3qS/src/derived.jl:21 declares type variable D but does not use it.
│ WARNING: method definition for #plan_nfct#8 at /home/curt/.julia/packages/AbstractNFFTs/Xd3qS/src/derived.jl:16 declares type variable D but does not use it.
│ WARNING: method definition for #plan_nfct#9 at /home/curt/.julia/packages/AbstractNFFTs/Xd3qS/src/derived.jl:21 declares type variable D but does not use it.
│ WARNING: method definition for #plan_nfst#13 at /home/curt/.julia/packages/AbstractNFFTs/Xd3qS/src/derived.jl:16 declares type variable D but does not use it.
│ WARNING: method definition for #plan_nfst#14 at /home/curt/.julia/packages/AbstractNFFTs/Xd3qS/src/derived.jl:21 declares type variable D but does not use it.
│ WARNING: method definition for #plan_nnfft#17 at /home/curt/.julia/packages/AbstractNFFTs/Xd3qS/src/derived.jl:34 declares type variable D but does not use it.
└
(@v1.10) pkg> st
Status `~/.julia/environments/v1.10/Project.toml`
[6a340f8b] KomaMRI v0.8.0
julia> using KomaMRI
julia> KomaUI()
[ Info: Listening on: 127.0.0.1:6189, thread id: 1
[ Info: Loaded `Scanner` to `sys_ui[]`
[ Info: Loaded `Sequence` to `seq_ui[]`
[ Info: Loaded `Phantom` to `obj_ui[]`
[ Info: Loaded `RawAcquisitionData` to `raw_ui[]`
[ Info: Loaded image to `img_ui[]`
┌ Info: 2 CUDA capable device(s).
│ (0*) = "Quadro RTX 8000"
└ (1 ) = "Quadro RTX 8000"
┌ Info: Currently using package versions
│ KomaMRI = "0.8.0"
│ KomaMRICore = "0.8.0"
│ KomaMRIFiles = "0.8.0"
└ KomaMRIPlots = "0.8.0"
julia> ┌ Info: Running simulation in the GPU (Quadro RTX 8000)
│ koma_version = v"0.8.0"
│ sim_method = Bloch()
│ spins = 6506
│ time_points = 11079
└ adc_points = 10201
Progress: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| Time: 0:00:17
simulated_blocks: 22
rf_blocks: 1
acq_samples: 10201
18.198495 seconds (30.02 M allocations: 2.053 GiB, 2.83% gc time, 83.45% compilation time)
[ Info: Exporting to ISMRMRD file: /tmp/Koma_signal.mrd
[ Info: Running reconstruction ...
julia>
Feature Request
First, thanks so much for sharing KomaMRI with the community, and for the great introduction at the ISMRM pulseq virtual meeting!
I am new to julia, but familiar with many of the other usual suspects (python, conda, etc.)
As a suggestion: It seems like julia <= 1.8 is currently required for using gpu functions (KomaMRICore v0.7.6)? Also the simulations default to gpu if present. Julia 1.9 works for cpu otherwise?
I went down the dead end with Julia 1.10.0, which is now the default, for a while before figuring it out.
Is it possible to add the gpu and cpu tested julia versions as an explicit dependency to the package (or in documentation or installation notes)?
It does seem like there are some version dependencies in the install files, but nothing warned or failed before runtime with julia 1.10 on ubuntu 18.04 and Juliaup 1.12.5.
thanks again!
Julia 1.9 and gpu compatibility https://github.com/cncastillo/KomaMRI.jl/issues/145