From ea7807d7adb94f10f4b28b64b22dbe8e84e20cef Mon Sep 17 00:00:00 2001 From: William Moses Date: Sun, 26 Jan 2025 10:02:09 +0100 Subject: [PATCH 1/6] Add bound optimizations --- src/Compiler.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Compiler.jl b/src/Compiler.jl index 54295f8e92..0d6b3fcc2b 100644 --- a/src/Compiler.jl +++ b/src/Compiler.jl @@ -317,9 +317,11 @@ function optimization_passes(; no_nan::Bool=false, sroa::Bool=false) func_passes = join(["canonicalize", "cse", "canonicalize", transform_passes], ",") passes = ["inline{default-pipeline=canonicalize max-iterations=4}"] if sroa + push!(passes, "propagate-constant-bounds") push!(passes, "sroa-wrappers") push!(passes, "libdevice-funcs-raise") push!(passes, "canonicalize") + push!(passes, "remove-duplicate-func-def") end push!(passes, func_passes) return join(passes, ',') From a07298d3b72ef08265fd0a84effc42d4a2958e28 Mon Sep 17 00:00:00 2001 From: William Moses Date: Sun, 26 Jan 2025 10:14:53 +0100 Subject: [PATCH 2/6] Update Compiler.jl --- src/Compiler.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Compiler.jl b/src/Compiler.jl index 0d6b3fcc2b..f5e9f90c75 100644 --- a/src/Compiler.jl +++ b/src/Compiler.jl @@ -321,7 +321,7 @@ function optimization_passes(; no_nan::Bool=false, sroa::Bool=false) push!(passes, "sroa-wrappers") push!(passes, "libdevice-funcs-raise") push!(passes, "canonicalize") - push!(passes, "remove-duplicate-func-def") + # push!(passes, "remove-duplicate-func-def") end push!(passes, func_passes) return join(passes, ',') From a2edc03a9d58cb94a107cedf56ed040a373bae28 Mon Sep 17 00:00:00 2001 From: "William S. Moses" Date: Sun, 26 Jan 2025 11:17:22 -0500 Subject: [PATCH 3/6] add symlink for local build --- deps/build_local.jl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/deps/build_local.jl b/deps/build_local.jl index 7c753992d7..9219579de9 100644 --- a/deps/build_local.jl +++ b/deps/build_local.jl @@ -142,6 +142,11 @@ end lib_path = joinpath(source_dir, "bazel-bin", only(built_libs)) isfile(lib_path) || error("Could not find library $lib_path in build directory") +if build_backend == "cuda" + if !Base.Filesystem.ispath(joinpath(source_dir, "cuda_nvcc")) + Base.Filesystem.symlink(joinpath(source_dir, "bazel-bin", "libReactantExtra.so.runfiles", "cuda_nvcc"), joinpath(source_dir, "cuda_nvcc")) + end +end # Tell ReactantExtra_jll to load our library instead of the default artifact one set_preferences!( joinpath(dirname(@__DIR__), "LocalPreferences.toml"), From f6eefe48babfc743e8b3eec848b1878b68100689 Mon Sep 17 00:00:00 2001 From: "William S. Moses" Date: Sun, 26 Jan 2025 11:23:28 -0500 Subject: [PATCH 4/6] actually fix --- deps/build_local.jl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/deps/build_local.jl b/deps/build_local.jl index 9219579de9..a69d652ad9 100644 --- a/deps/build_local.jl +++ b/deps/build_local.jl @@ -143,8 +143,9 @@ lib_path = joinpath(source_dir, "bazel-bin", only(built_libs)) isfile(lib_path) || error("Could not find library $lib_path in build directory") if build_backend == "cuda" - if !Base.Filesystem.ispath(joinpath(source_dir, "cuda_nvcc")) - Base.Filesystem.symlink(joinpath(source_dir, "bazel-bin", "libReactantExtra.so.runfiles", "cuda_nvcc"), joinpath(source_dir, "cuda_nvcc")) + if !Base.Filesystem.ispath(joinpath(source_dir, "bazel-bin", "cuda", "bin", "ptxas")) + Base.Filesystem.mkpath(joinpath(source_dir, "bazel-bin", "cuda", "bin")) + Base.Filesystem.symlink(joinpath(source_dir, "bazel-bin", "libReactantExtra.so.runfiles", "cuda_nvcc", "bin", "ptxas"), joinpath(source_dir, "bazel-bin", "cuda", "bin", "ptxas")) end end # Tell ReactantExtra_jll to load our library instead of the default artifact one From 90f36ca524261aeae4efb83efa110ebfd51220ee Mon Sep 17 00:00:00 2001 From: William Moses Date: Sun, 26 Jan 2025 17:37:11 +0100 Subject: [PATCH 5/6] Update Compiler.jl --- src/Compiler.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Compiler.jl b/src/Compiler.jl index f5e9f90c75..0d6b3fcc2b 100644 --- a/src/Compiler.jl +++ b/src/Compiler.jl @@ -321,7 +321,7 @@ function optimization_passes(; no_nan::Bool=false, sroa::Bool=false) push!(passes, "sroa-wrappers") push!(passes, "libdevice-funcs-raise") push!(passes, "canonicalize") - # push!(passes, "remove-duplicate-func-def") + push!(passes, "remove-duplicate-func-def") end push!(passes, func_passes) return join(passes, ',') From 92d8bd9772c9e66a29c09cc340fe8a163f0c4d57 Mon Sep 17 00:00:00 2001 From: William Moses Date: Sun, 26 Jan 2025 17:37:20 +0100 Subject: [PATCH 6/6] Update deps/build_local.jl Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- deps/build_local.jl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/deps/build_local.jl b/deps/build_local.jl index a69d652ad9..df17e1a2f8 100644 --- a/deps/build_local.jl +++ b/deps/build_local.jl @@ -145,7 +145,17 @@ isfile(lib_path) || error("Could not find library $lib_path in build directory") if build_backend == "cuda" if !Base.Filesystem.ispath(joinpath(source_dir, "bazel-bin", "cuda", "bin", "ptxas")) Base.Filesystem.mkpath(joinpath(source_dir, "bazel-bin", "cuda", "bin")) - Base.Filesystem.symlink(joinpath(source_dir, "bazel-bin", "libReactantExtra.so.runfiles", "cuda_nvcc", "bin", "ptxas"), joinpath(source_dir, "bazel-bin", "cuda", "bin", "ptxas")) + Base.Filesystem.symlink( + joinpath( + source_dir, + "bazel-bin", + "libReactantExtra.so.runfiles", + "cuda_nvcc", + "bin", + "ptxas", + ), + joinpath(source_dir, "bazel-bin", "cuda", "bin", "ptxas"), + ) end end # Tell ReactantExtra_jll to load our library instead of the default artifact one