From c4c4811bb495fae46260f9eb1773f027b697473a Mon Sep 17 00:00:00 2001 From: luraess Date: Tue, 8 Aug 2023 08:56:38 +0200 Subject: [PATCH 1/2] Update ROCm doc --- Manifest.toml | 146 +++++++++++++++++++++-------- _assets/img/amdgpu-performance.png | Bin 0 -> 61734 bytes index.md | 4 +- rocm.md | 41 +++++--- 4 files changed, 137 insertions(+), 54 deletions(-) create mode 100644 _assets/img/amdgpu-performance.png diff --git a/Manifest.toml b/Manifest.toml index b41dff2..c667920 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -14,10 +14,22 @@ uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" -[[deps.Crayons]] -git-tree-sha1 = "3f71217b538d7aaee0b69ab47d9b7724ca8afa0d" -uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" -version = "4.0.4" +[[deps.BitFlags]] +git-tree-sha1 = "43b1a4a8f797c1cddadf60499a8a077d4af2cd2d" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.7" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "02aa26a4cf76381be7f66e020a3eddeb27b0a092" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.2" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "5372dbbf8f0bdb8c700db5367132925c0771ef7e" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.2.1" [[deps.Dates]] deps = ["Printf"] @@ -31,62 +43,68 @@ version = "1.9.1" [[deps.DocStringExtensions]] deps = ["LibGit2"] -git-tree-sha1 = "a32185f5428d3986f47c2ab78b1f216d5e6cc96f" +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -version = "0.8.5" +version = "0.9.3" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.9" + [[deps.ExprTools]] -git-tree-sha1 = "b7e3d17636b348f005f11040025ae8c6f645fe92" +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.6" +version = "0.1.10" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.Franklin]] -deps = ["Dates", "DelimitedFiles", "DocStringExtensions", "ExprTools", "FranklinTemplates", "HTTP", "Literate", "LiveServer", "Logging", "Markdown", "NodeJS", "OrderedCollections", "Pkg", "REPL", "Random"] -git-tree-sha1 = "ca57f7e99cb91d90fa8f969bbc7ffda3b7e09a12" +deps = ["Dates", "DelimitedFiles", "DocStringExtensions", "ExprTools", "FranklinTemplates", "HTTP", "Literate", "LiveServer", "Logging", "Markdown", "NodeJS", "OrderedCollections", "Pkg", "REPL", "Random", "TOML"] +git-tree-sha1 = "09a2c57f06091f81038029343c2b8c26318ccacf" uuid = "713c75ef-9fc9-4b05-94a9-213340da978e" -version = "0.10.59" +version = "0.10.88" [[deps.FranklinTemplates]] deps = ["LiveServer"] -git-tree-sha1 = "20ec221753e0c6bcac845423089b656538ac4eec" +git-tree-sha1 = "88a91e1b383b8ae435522ebeb3278334c24b06c4" uuid = "3a985190-f512-4703-8d38-2a7944ed5916" -version = "0.8.22" +version = "0.9.2" [[deps.HTTP]] -deps = ["Base64", "Dates", "IniFile", "Logging", "MbedTLS", "NetworkOptions", "Sockets", "URIs"] -git-tree-sha1 = "14eece7a3308b4d8be910e265c724a6ba51a9798" +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "cb56ccdd481c0dd7f975ad2b3b62d9eda088f7e2" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "0.9.16" +version = "1.9.14" [[deps.IOCapture]] deps = ["Logging", "Random"] -git-tree-sha1 = "f7be53659ab06ddc986428d3a9dcc95f6fa6705a" +git-tree-sha1 = "d75853a0bdbfb1ac815478bacd89cd27b550ace6" uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" -version = "0.2.2" - -[[deps.IniFile]] -deps = ["Test"] -git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8" -uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" -version = "0.5.0" +version = "0.2.3" [[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +[[deps.JLLWrappers]] +deps = ["Preferences"] +git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.4.1" + [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] -git-tree-sha1 = "8076680b162ada2a031f707ac7b4953e30667a37" +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "0.21.2" +version = "0.21.4" [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] @@ -112,28 +130,39 @@ uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" [[deps.Literate]] deps = ["Base64", "IOCapture", "JSON", "REPL"] -git-tree-sha1 = "bbebc3c14dbfbe76bfcbabf0937481ac84dc86ef" +git-tree-sha1 = "a1a0d4ff9f785a2184baca7a5c89e664f144143d" uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" -version = "2.9.3" +version = "2.14.1" [[deps.LiveServer]] -deps = ["Crayons", "FileWatching", "HTTP", "Pkg", "Sockets", "Test"] -git-tree-sha1 = "99990da121ad310875b3c4dba5954eba54df8cfd" +deps = ["HTTP", "LoggingExtras", "MIMEs", "Pkg", "Sockets", "Test"] +git-tree-sha1 = "24d05efe53436b22a42bf2ae459f47c48b0c2603" uuid = "16fef848-5104-11e9-1b77-fb7a48bbb589" -version = "0.7.0" +version = "1.2.7" [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "cedb76b37bc5a6c702ade66be44f831fa23c681e" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.0" + +[[deps.MIMEs]] +git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" +uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" +version = "0.1.4" + [[deps.Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[deps.MbedTLS]] -deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"] -git-tree-sha1 = "1c38e51c3d08ef2278062ebceade0e46cefc96fe" +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] +git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b" uuid = "739be429-bea8-5141-9913-cc70e7f3736d" -version = "1.0.3" +version = "1.1.7" [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] @@ -157,22 +186,46 @@ git-tree-sha1 = "905224bbdd4b555c69bb964514cfa387616f0d3a" uuid = "2bd173c7-0d6d-553b-b6af-13a54713934c" version = "1.3.0" +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.1" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e78db7bd5c26fc5a6911b50a47ee302219157ea8" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.10+0" + [[deps.OrderedCollections]] -git-tree-sha1 = "85f8e6578bf1f9ee0d11e7bb1b1456435479d47c" +git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.4.1" +version = "1.6.2" [[deps.Parsers]] -deps = ["Dates"] -git-tree-sha1 = "a8709b968a1ea6abc2dc1967cb1db6ac9a00dfb6" +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "716e24b21538abc91f6205fd1d8363f39b442851" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.0.5" +version = "2.7.2" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" version = "1.9.2" +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "9673d39decc5feece56ef3940e5dafba15ba0f81" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.1.2" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "7eb1686b4f04b82f96ed7a4ea5890a4f0c7a09f1" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.0" + [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" @@ -192,6 +245,11 @@ version = "0.7.0" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" @@ -209,10 +267,16 @@ version = "1.10.0" deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +[[deps.TranscodingStreams]] +deps = ["Random", "Test"] +git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.9.13" + [[deps.URIs]] -git-tree-sha1 = "97bbe755a53fe859669cd907f2d96aee8d2c1355" +git-tree-sha1 = "b7a5e99f24892b6824a954199a45e9ffcc1c70f0" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" -version = "1.3.0" +version = "1.5.0" [[deps.UUIDs]] deps = ["Random", "SHA"] diff --git a/_assets/img/amdgpu-performance.png b/_assets/img/amdgpu-performance.png new file mode 100644 index 0000000000000000000000000000000000000000..bf59cc4025970e29bc703a8969095c2f09152105 GIT binary patch literal 61734 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.~BP5CaW5^Q}=gE}i#?5OVL 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%0Ad?`M4^O;yw7dUM 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 S=6=@_SD~Y6pixA&5B@)bl)8KX literal 0 HcmV?d00001 diff --git a/index.md b/index.md index 710f7ca..c7f6cc9 100644 --- a/index.md +++ b/index.md @@ -28,7 +28,7 @@ All versions of Julia are supported, on Linux and Windows, and the functionality Similar, but much newer capabilities exist for [**Intel GPUs with oneAPI**](/oneapi/). Currently, full-featured kernel programming capabilities are available, but there is no support for vendor libraries such as oneMKL or oneDNN yet. -Experimental support exists for [**AMD GPUs**](/rocm/) running on the ROCm stack. These GPUs can again be programmed in Julia at the kernel level or using array operations, but these capabilities are under heavy development and are not ready for general consumption yet. +Maturing support exists for [**AMD GPUs**](/rocm/) running on the ROCm stack. These GPUs can again be programmed in Julia at the kernel level or using high-level operations on arrays. Latest versions of Julia are supported, and the functionality is increasingly used by a variety of applications and libraries. Experimental support also exists for [**Apple GPUs**](/metal/). Array programming and kernel programming are both supported. @@ -63,4 +63,4 @@ If you need help, or have questions about GPU programming in Julia, you can find the community at: - Julia Discourse, with a dedicated [GPU section](https://discourse.julialang.org/c/domain/gpu/11) -- Julia Slack ([register here](https://slackinvite.julialang.org/)), on the [#gpu channel](https://julialang.slack.com/messages/C689Y34LE/) +- Julia Slack ([register here](https://slackinvite.julialang.org/)), on the [#gpu channel](https://julialang.slack.com/messages/C689Y34LE/) \ No newline at end of file diff --git a/rocm.md b/rocm.md index f8e7f68..528536f 100644 --- a/rocm.md +++ b/rocm.md @@ -18,19 +18,38 @@ title = "AMD ROCm" The Julia programming support for AMD GPUs based on the ROCm platform aims to provide similar capabilities as the [NVIDIA CUDA](/cuda/) stack, with support for both low-level kernel programming as well as an array-oriented interface. +[AMDGPU.jl](https://github.com/JuliaGPU/AMDGPU.jl) offers comparable performance +as HIP C++. The toolchain can easily be installed on latest version of Julia +using the integrated package manager. -Julia support exists in the form of a single package: +AMDGPU.jl makes it possible to program AMD GPUs at different abstraction levels: -- [AMDGPU.jl](https://github.com/JuliaGPU/AMDGPU.jl) +- by using the `ROCArray` type, providing a user-friendly yet powerful abstraction + that does not require any GPU programming experience; +- by writing ROC kernels, with similar performance as kernels written in HIP C++; +- by interfacing with HIP APIs and libraries directly, similar level of flexibility + you would expect from a C-based programming environment. -This package contains everything needed to access the HSA runtime, program GPU -kernels, and utilize a user-friendly array-based interface. -The stack originally was divided into 3 separate packages, which still exist and may be of use for interested users and developers: +The [documentation](https://amdgpu.juliagpu.org/stable/) of AMDGPU.jl demonstrates +each of these approaches. -- [HSARuntime.jl](https://github.com/JuliaGPU/HSARuntime.jl): interfacing with the HSA runtime -- [AMDGPUnative.jl](https://github.com/JuliaGPU/AMDGPUnative.jl): GPU kernel programming support -- [ROCArrays.jl](https://github.com/JuliaGPU/ROCArrays.jl): array programming interface +# Performance -At this point, the toolchain is a work in progress, although it is quite -functional for simple usecases. We only officially support Julia 1.4 and Julia -1.5. +Julia on the CPU is known for its good performance, approaching that of statically +compiled languages like C. The same holds for programming AMD GPUs with kernels +written using AMDGPU.jl, where we show preliminary performance to approach that of +HIP C++ on a memcopy and 2D diffusion kernel: + +~~~ +
+ + + +
+

+ Preliminary performance of a memcopy and 2D diffusion kernel implemented in + Julia with AMDGPU.jl and executed on a MI250x GPU. +

+
+
+~~~ \ No newline at end of file From e13e83b5330179933f9439530f8afb9ccdd699c7 Mon Sep 17 00:00:00 2001 From: luraess Date: Tue, 8 Aug 2023 11:38:08 +0200 Subject: [PATCH 2/2] Revert Manifest --- Manifest.toml | 148 ++++++++++++++------------------------------------ 1 file changed, 42 insertions(+), 106 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index c667920..b3b02f4 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -14,22 +14,10 @@ uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" -[[deps.BitFlags]] -git-tree-sha1 = "43b1a4a8f797c1cddadf60499a8a077d4af2cd2d" -uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" -version = "0.1.7" - -[[deps.CodecZlib]] -deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "02aa26a4cf76381be7f66e020a3eddeb27b0a092" -uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.2" - -[[deps.ConcurrentUtilities]] -deps = ["Serialization", "Sockets"] -git-tree-sha1 = "5372dbbf8f0bdb8c700db5367132925c0771ef7e" -uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" -version = "2.2.1" +[[deps.Crayons]] +git-tree-sha1 = "3f71217b538d7aaee0b69ab47d9b7724ca8afa0d" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "4.0.4" [[deps.Dates]] deps = ["Printf"] @@ -43,68 +31,62 @@ version = "1.9.1" [[deps.DocStringExtensions]] deps = ["LibGit2"] -git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +git-tree-sha1 = "a32185f5428d3986f47c2ab78b1f216d5e6cc96f" uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -version = "0.9.3" +version = "0.8.5" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" -[[deps.ExceptionUnwrapping]] -deps = ["Test"] -git-tree-sha1 = "e90caa41f5a86296e014e148ee061bd6c3edec96" -uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" -version = "0.1.9" - [[deps.ExprTools]] -git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" +git-tree-sha1 = "b7e3d17636b348f005f11040025ae8c6f645fe92" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.10" +version = "0.1.6" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[deps.Franklin]] -deps = ["Dates", "DelimitedFiles", "DocStringExtensions", "ExprTools", "FranklinTemplates", "HTTP", "Literate", "LiveServer", "Logging", "Markdown", "NodeJS", "OrderedCollections", "Pkg", "REPL", "Random", "TOML"] -git-tree-sha1 = "09a2c57f06091f81038029343c2b8c26318ccacf" +deps = ["Dates", "DelimitedFiles", "DocStringExtensions", "ExprTools", "FranklinTemplates", "HTTP", "Literate", "LiveServer", "Logging", "Markdown", "NodeJS", "OrderedCollections", "Pkg", "REPL", "Random"] +git-tree-sha1 = "ca57f7e99cb91d90fa8f969bbc7ffda3b7e09a12" uuid = "713c75ef-9fc9-4b05-94a9-213340da978e" -version = "0.10.88" +version = "0.10.59" [[deps.FranklinTemplates]] deps = ["LiveServer"] -git-tree-sha1 = "88a91e1b383b8ae435522ebeb3278334c24b06c4" +git-tree-sha1 = "20ec221753e0c6bcac845423089b656538ac4eec" uuid = "3a985190-f512-4703-8d38-2a7944ed5916" -version = "0.9.2" +version = "0.8.22" [[deps.HTTP]] -deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "cb56ccdd481c0dd7f975ad2b3b62d9eda088f7e2" +deps = ["Base64", "Dates", "IniFile", "Logging", "MbedTLS", "NetworkOptions", "Sockets", "URIs"] +git-tree-sha1 = "14eece7a3308b4d8be910e265c724a6ba51a9798" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.9.14" +version = "0.9.16" [[deps.IOCapture]] deps = ["Logging", "Random"] -git-tree-sha1 = "d75853a0bdbfb1ac815478bacd89cd27b550ace6" +git-tree-sha1 = "f7be53659ab06ddc986428d3a9dcc95f6fa6705a" uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" -version = "0.2.3" +version = "0.2.2" + +[[deps.IniFile]] +deps = ["Test"] +git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8" +uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" +version = "0.5.0" [[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" -[[deps.JLLWrappers]] -deps = ["Preferences"] -git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" -uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.4.1" - [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] -git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +git-tree-sha1 = "8076680b162ada2a031f707ac7b4953e30667a37" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "0.21.4" +version = "0.21.2" [[deps.LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] @@ -130,39 +112,28 @@ uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" [[deps.Literate]] deps = ["Base64", "IOCapture", "JSON", "REPL"] -git-tree-sha1 = "a1a0d4ff9f785a2184baca7a5c89e664f144143d" +git-tree-sha1 = "bbebc3c14dbfbe76bfcbabf0937481ac84dc86ef" uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" -version = "2.14.1" +version = "2.9.3" [[deps.LiveServer]] -deps = ["HTTP", "LoggingExtras", "MIMEs", "Pkg", "Sockets", "Test"] -git-tree-sha1 = "24d05efe53436b22a42bf2ae459f47c48b0c2603" +deps = ["Crayons", "FileWatching", "HTTP", "Pkg", "Sockets", "Test"] +git-tree-sha1 = "99990da121ad310875b3c4dba5954eba54df8cfd" uuid = "16fef848-5104-11e9-1b77-fb7a48bbb589" -version = "1.2.7" +version = "0.7.0" [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" -[[deps.LoggingExtras]] -deps = ["Dates", "Logging"] -git-tree-sha1 = "cedb76b37bc5a6c702ade66be44f831fa23c681e" -uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" -version = "1.0.0" - -[[deps.MIMEs]] -git-tree-sha1 = "65f28ad4b594aebe22157d6fac869786a255b7eb" -uuid = "6c6e2e6c-3030-632d-7369-2d6c69616d65" -version = "0.1.4" - [[deps.Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[deps.MbedTLS]] -deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] -git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b" +deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"] +git-tree-sha1 = "1c38e51c3d08ef2278062ebceade0e46cefc96fe" uuid = "739be429-bea8-5141-9913-cc70e7f3736d" -version = "1.1.7" +version = "1.0.3" [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] @@ -186,46 +157,22 @@ git-tree-sha1 = "905224bbdd4b555c69bb964514cfa387616f0d3a" uuid = "2bd173c7-0d6d-553b-b6af-13a54713934c" version = "1.3.0" -[[deps.OpenSSL]] -deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" -uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.4.1" - -[[deps.OpenSSL_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "e78db7bd5c26fc5a6911b50a47ee302219157ea8" -uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.10+0" - [[deps.OrderedCollections]] -git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" +git-tree-sha1 = "85f8e6578bf1f9ee0d11e7bb1b1456435479d47c" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.6.2" +version = "1.4.1" [[deps.Parsers]] -deps = ["Dates", "PrecompileTools", "UUIDs"] -git-tree-sha1 = "716e24b21538abc91f6205fd1d8363f39b442851" +deps = ["Dates"] +git-tree-sha1 = "a8709b968a1ea6abc2dc1967cb1db6ac9a00dfb6" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.7.2" +version = "2.0.5" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" version = "1.9.2" -[[deps.PrecompileTools]] -deps = ["Preferences"] -git-tree-sha1 = "9673d39decc5feece56ef3940e5dafba15ba0f81" -uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.1.2" - -[[deps.Preferences]] -deps = ["TOML"] -git-tree-sha1 = "7eb1686b4f04b82f96ed7a4ea5890a4f0c7a09f1" -uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.0" - [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" @@ -245,11 +192,6 @@ version = "0.7.0" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" -[[deps.SimpleBufferStream]] -git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" -uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" -version = "1.1.0" - [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" @@ -267,16 +209,10 @@ version = "1.10.0" deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" -[[deps.TranscodingStreams]] -deps = ["Random", "Test"] -git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769" -uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.9.13" - [[deps.URIs]] -git-tree-sha1 = "b7a5e99f24892b6824a954199a45e9ffcc1c70f0" +git-tree-sha1 = "97bbe755a53fe859669cd907f2d96aee8d2c1355" uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" -version = "1.5.0" +version = "1.3.0" [[deps.UUIDs]] deps = ["Random", "SHA"] @@ -298,4 +234,4 @@ version = "1.48.0+0" [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+0" +version = "17.4.0+0" \ No newline at end of file