From 67b2349c168e41ea84fb1fe850746767ebfa4883 Mon Sep 17 00:00:00 2001 From: krasow Date: Wed, 28 Jan 2026 16:26:19 -0600 Subject: [PATCH 1/7] huh --- Project.toml | 2 ++ lib/cunumeric_jl_wrapper/src/wrapper.cpp | 7 ++++++- src/cuNumeric.jl | 23 ++++++++++++++++------- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/Project.toml b/Project.toml index eb96e4e2..4b212a3a 100644 --- a/Project.toml +++ b/Project.toml @@ -7,6 +7,7 @@ CNPreferences = "3e078157-ea10-49d5-bf32-908f777cd46f" CodecZlib = "944b1d66-785c-5afd-91f1-9de20f533193" CxxWrap = "1f15a43c-97ca-5a2a-ae31-89f07a497df4" Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" JuliaFormatter = "98e50ef6-434e-11e9-1051-2b60c6c9e899" Legate = "1238f2cf-6593-4d60-9aca-2f5364e49909" LegatePreferences = "8028f36a-2b64-49e9-aa04-2d0933fd2ed9" @@ -34,6 +35,7 @@ CUDAExt = "CUDA" CNPreferences = "0.1.2" CUDA = "5.9" CxxWrap = "0.17" +FFTW = "1.10.0" Legate = "0.1.0" LegatePreferences = "0.1.5" MacroTools = "0.5.16" diff --git a/lib/cunumeric_jl_wrapper/src/wrapper.cpp b/lib/cunumeric_jl_wrapper/src/wrapper.cpp index 39ac459e..b02204f9 100644 --- a/lib/cunumeric_jl_wrapper/src/wrapper.cpp +++ b/lib/cunumeric_jl_wrapper/src/wrapper.cpp @@ -92,6 +92,10 @@ JLCXX_MODULE define_julia_module(jlcxx::Module& mod) { using jlcxx::Parametric; using jlcxx::TypeVar; + // Map C++ complex types to Julia complex types + mod.map_type>("ComplexF64"); + mod.map_type>("ComplexF32"); + // These are the types/dims used to generate templated functions // i.e. only these types/dims can be used from Julia side using fp_types = ParameterList; @@ -100,7 +104,8 @@ JLCXX_MODULE define_julia_module(jlcxx::Module& mod) { using all_types = ParameterList; + uint16_t, uint32_t, uint64_t, bool, std::complex, + std::complex>; using allowed_dims = ParameterList< std::integral_constant, std::integral_constant, std::integral_constant, std::integral_constant>; diff --git a/src/cuNumeric.jl b/src/cuNumeric.jl index 7be59303..97bc9b7f 100644 --- a/src/cuNumeric.jl +++ b/src/cuNumeric.jl @@ -34,8 +34,20 @@ const DEFAULT_INT = Int32 const SUPPORTED_INT_TYPES = Union{Int32,Int64} const SUPPORTED_FLOAT_TYPES = Union{Float32,Float64} -const SUPPORTED_NUMERIC_TYPES = Union{SUPPORTED_INT_TYPES,SUPPORTED_FLOAT_TYPES} -const SUPPORTED_TYPES = Union{SUPPORTED_INT_TYPES,SUPPORTED_FLOAT_TYPES,Bool} #* TODO Test UInt, Complex +const SUPPORTED_COMPLEX_TYPES = Union{ComplexF32,ComplexF64} +const SUPPORTED_NUMERIC_TYPES = Union{ + SUPPORTED_INT_TYPES,SUPPORTED_FLOAT_TYPES,SUPPORTED_COMPLEX_TYPES +} +# const SUPPORTED_TYPES = Union{SUPPORTED_INT_TYPES,SUPPORTED_FLOAT_TYPES,Bool} #* TODO Test UInt, Complex + +const SUPPORTED_TYPES = Union{ + Bool, + Int8,Int16,Int32,Int64, + UInt8,UInt16,UInt32,UInt64, + Float16,Float32,Float64, + ComplexF32,ComplexF64, + String, +} # const MAX_DIM = 6 # idk what we compiled? @@ -169,16 +181,14 @@ end const RUNTIME_INACTIVE = -1 const RUNTIME_ACTIVE = 0 const _runtime_ref = Ref{Int}(RUNTIME_INACTIVE) -const _start_lock = ReentrantLock() +const _start_lock = ReentrantLock() runtime_started() = _runtime_ref[] == RUNTIME_ACTIVE function _start_runtime() - Libdl.dlopen(CUPYNUMERIC_LIB_PATH, Libdl.RTLD_GLOBAL | Libdl.RTLD_NOW) Libdl.dlopen(CUPYNUMERIC_WRAPPER_LIB_PATH, Libdl.RTLD_GLOBAL | Libdl.RTLD_NOW) - AA = ArgcArgv(String[]) # AA = ArgcArgv([Base.julia_cmd()[1]]) cuNumeric.initialize_cunumeric(AA.argc, getargv(AA)) @@ -188,7 +198,6 @@ function _start_runtime() Base.atexit(my_on_exit) - return RUNTIME_ACTIVE end @@ -223,7 +232,7 @@ function __init__() global cuNumeric_config_str = version_config_setup() - _is_precompiling() && return + _is_precompiling() && return nothing ensure_runtime!() end From 59a36825bfe71580a1d5f59af18ae52ba79e5130 Mon Sep 17 00:00:00 2001 From: krasow Date: Thu, 29 Jan 2026 17:15:35 -0600 Subject: [PATCH 2/7] add tasking interface and example cuNumeric.Bob --- .githash | 2 +- src/cuNumeric.jl | 8 ++++++++ src/ndarray/ndarray.jl | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/.githash b/.githash index b3b87b3a..57851ef6 100644 --- a/.githash +++ b/.githash @@ -1 +1 @@ -321fb12e0f01f8fb792cb0a49ff877bb6502ad7d +67b2349c168e41ea84fb1fe850746767ebfa4883 diff --git a/src/cuNumeric.jl b/src/cuNumeric.jl index 97bc9b7f..ab1c5227 100644 --- a/src/cuNumeric.jl +++ b/src/cuNumeric.jl @@ -235,6 +235,14 @@ function __init__() _is_precompiling() && return nothing ensure_runtime!() + + # Register existing C++ library with Legate runtime for UFI support + lib = get_lib() + Legate._ufi_interface_register(lib) + + async_handle = Legate._get_async_handle() + request_ptr = Legate._get_request_ptr() + Legate._initialize_async_system(async_handle, request_ptr) end end #module cuNumeric diff --git a/src/ndarray/ndarray.jl b/src/ndarray/ndarray.jl index 02ec68e5..f86c53ee 100644 --- a/src/ndarray/ndarray.jl +++ b/src/ndarray/ndarray.jl @@ -19,6 +19,43 @@ export unwrap +function _BobTask(args::Vector{Legate.TaskArgument}) + a, b, scalar = args + @inbounds @simd for i in eachindex(a) + b[i] = a[i] * scalar + end +end + +function Bob(in_arr::NDArray{T}, scalar::Float32) where {T} + out_arr = cuNumeric.zeros(T, Base.size(in_arr)) + + rt = Legate.get_runtime() + lib = get_lib() + + my_task = Legate.wrap_task(_BobTask; input_types=[T], output_types=[T]) + + task = Legate.create_julia_task(rt, lib, my_task) + + input_vars = Vector{Legate.Variable}() + output_vars = Vector{Legate.Variable}() + + push!(input_vars, Legate.add_input(task, get_store(in_arr))) + push!(output_vars, Legate.add_output(task, get_store(out_arr))) + + Legate.default_alignment(task, input_vars, output_vars) + Legate.add_scalar(task, Legate.Scalar(scalar)) + + Legate.submit_task(rt, task) + + # In single-threaded mode, we must wait to avoid deadlock + # (Main thread blocks on data access, preventing async_worker from running) + if Threads.nthreads() == 1 + Legate.wait_ufi() + end + + return out_arr +end + @doc""" cuNumeric.transpose(arr::NDArray) From 0b5e8b5c50b9da50c47a8935e8f00f87f3b5e064 Mon Sep 17 00:00:00 2001 From: krasow Date: Thu, 29 Jan 2026 17:17:22 -0600 Subject: [PATCH 3/7] remove FFTW requirement --- .githash | 2 +- Project.toml | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.githash b/.githash index 57851ef6..23dd0c3d 100644 --- a/.githash +++ b/.githash @@ -1 +1 @@ -67b2349c168e41ea84fb1fe850746767ebfa4883 +59a36825bfe71580a1d5f59af18ae52ba79e5130 diff --git a/Project.toml b/Project.toml index 4b212a3a..eb96e4e2 100644 --- a/Project.toml +++ b/Project.toml @@ -7,7 +7,6 @@ CNPreferences = "3e078157-ea10-49d5-bf32-908f777cd46f" CodecZlib = "944b1d66-785c-5afd-91f1-9de20f533193" CxxWrap = "1f15a43c-97ca-5a2a-ae31-89f07a497df4" Downloads = "f43a241f-c20a-4ad4-852c-f6b1247861c6" -FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" JuliaFormatter = "98e50ef6-434e-11e9-1051-2b60c6c9e899" Legate = "1238f2cf-6593-4d60-9aca-2f5364e49909" LegatePreferences = "8028f36a-2b64-49e9-aa04-2d0933fd2ed9" @@ -35,7 +34,6 @@ CUDAExt = "CUDA" CNPreferences = "0.1.2" CUDA = "5.9" CxxWrap = "0.17" -FFTW = "1.10.0" Legate = "0.1.0" LegatePreferences = "0.1.5" MacroTools = "0.5.16" From 21c1f1ca3fbeaea3f13b2a8d1e72d87ef8fa810c Mon Sep 17 00:00:00 2001 From: krasow Date: Thu, 29 Jan 2026 17:45:49 -0600 Subject: [PATCH 4/7] expirimental block add --- .githash | 2 +- src/cuNumeric.jl | 4 +- src/ndarray/experimental.jl | 73 +++++++++++++++++++++++++++++++++++++ src/ndarray/ndarray.jl | 40 +------------------- 4 files changed, 79 insertions(+), 40 deletions(-) create mode 100644 src/ndarray/experimental.jl diff --git a/.githash b/.githash index 23dd0c3d..d3e1f260 100644 --- a/.githash +++ b/.githash @@ -1 +1 @@ -59a36825bfe71580a1d5f59af18ae52ba79e5130 +0b5e8b5c50b9da50c47a8935e8f00f87f3b5e064 diff --git a/src/cuNumeric.jl b/src/cuNumeric.jl index ab1c5227..6208a7cc 100644 --- a/src/cuNumeric.jl +++ b/src/cuNumeric.jl @@ -1,4 +1,4 @@ -#= Copyright 2025 Northwestern University, +#= Copyright 2026 Northwestern University, * Carnegie Mellon University University * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -15,6 +15,7 @@ * * Author(s): David Krasowska * Ethan Meitz + * Nader Rahal =# module cuNumeric @@ -135,6 +136,7 @@ include("ndarray/broadcast.jl") include("ndarray/ndarray.jl") include("ndarray/unary.jl") include("ndarray/binary.jl") +include("ndarray/experimental.jl") # scoping macro include("scoping.jl") diff --git a/src/ndarray/experimental.jl b/src/ndarray/experimental.jl new file mode 100644 index 00000000..e5bf3099 --- /dev/null +++ b/src/ndarray/experimental.jl @@ -0,0 +1,73 @@ +#= Copyright 2026 Northwestern University, + * Carnegie Mellon University University + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Author(s): David Krasowska + * Ethan Meitz + * Nader Rahal +=# + +function Experimental(setting::Bool) + task_local_storage(:Experimental, setting) +end + +function assert_experimental() + if get(task_local_storage(), :Experimental, false) !== true + throw( + ArgumentError( + "Experimental features are disabled." * + " Use `cuNumeric.Experimental(true)` to enable them.", + ), + ) + end +end + +function _BobTask(args::Vector{Legate.TaskArgument}) + a, b, scalar = args + @inbounds @simd for i in eachindex(a) + b[i] = a[i] * scalar + end +end + +function Bob(in_arr::NDArray{T}, scalar::Float32) where {T} + assert_experimental() + + out_arr = cuNumeric.zeros(T, Base.size(in_arr)) + + rt = Legate.get_runtime() + lib = get_lib() + + my_task = Legate.wrap_task(_BobTask; input_types=[T], output_types=[T]) + + task = Legate.create_julia_task(rt, lib, my_task) + + input_vars = Vector{Legate.Variable}() + output_vars = Vector{Legate.Variable}() + + push!(input_vars, Legate.add_input(task, get_store(in_arr))) + push!(output_vars, Legate.add_output(task, get_store(out_arr))) + + Legate.default_alignment(task, input_vars, output_vars) + Legate.add_scalar(task, Legate.Scalar(scalar)) + + Legate.submit_task(rt, task) + + # In single-threaded mode, we must wait to avoid deadlock + # (Main thread blocks on data access, preventing async_worker from running) + if Threads.nthreads() == 1 + Legate.wait_ufi() + end + + return out_arr +end diff --git a/src/ndarray/ndarray.jl b/src/ndarray/ndarray.jl index f86c53ee..95709ebf 100644 --- a/src/ndarray/ndarray.jl +++ b/src/ndarray/ndarray.jl @@ -1,4 +1,4 @@ -#= Copyright 2025 Northwestern University, +#= Copyright 2026 Northwestern University, * Carnegie Mellon University University * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -15,47 +15,11 @@ * * Author(s): David Krasowska * Ethan Meitz + * Nader Rahal =# export unwrap -function _BobTask(args::Vector{Legate.TaskArgument}) - a, b, scalar = args - @inbounds @simd for i in eachindex(a) - b[i] = a[i] * scalar - end -end - -function Bob(in_arr::NDArray{T}, scalar::Float32) where {T} - out_arr = cuNumeric.zeros(T, Base.size(in_arr)) - - rt = Legate.get_runtime() - lib = get_lib() - - my_task = Legate.wrap_task(_BobTask; input_types=[T], output_types=[T]) - - task = Legate.create_julia_task(rt, lib, my_task) - - input_vars = Vector{Legate.Variable}() - output_vars = Vector{Legate.Variable}() - - push!(input_vars, Legate.add_input(task, get_store(in_arr))) - push!(output_vars, Legate.add_output(task, get_store(out_arr))) - - Legate.default_alignment(task, input_vars, output_vars) - Legate.add_scalar(task, Legate.Scalar(scalar)) - - Legate.submit_task(rt, task) - - # In single-threaded mode, we must wait to avoid deadlock - # (Main thread blocks on data access, preventing async_worker from running) - if Threads.nthreads() == 1 - Legate.wait_ufi() - end - - return out_arr -end - @doc""" cuNumeric.transpose(arr::NDArray) From b4d852ea08c0bdc26765e666ecf313eccabe3654 Mon Sep 17 00:00:00 2001 From: krasow Date: Thu, 29 Jan 2026 17:51:58 -0600 Subject: [PATCH 5/7] update copyright stuff --- .githash | 2 +- lib/cunumeric_jl_wrapper/include/accessors.h | 3 ++- .../include/ndarray_c_api.h | 20 +++++++++++++++++++ lib/cunumeric_jl_wrapper/include/types.h | 3 ++- lib/cunumeric_jl_wrapper/include/ufi.h | 3 ++- lib/cunumeric_jl_wrapper/src/cuda.cpp | 3 ++- lib/cunumeric_jl_wrapper/src/memory.cpp | 20 +++++++++++++++++++ lib/cunumeric_jl_wrapper/src/ndarray.cpp | 20 +++++++++++++++++++ lib/cunumeric_jl_wrapper/src/types.cpp | 2 +- lib/cunumeric_jl_wrapper/src/wrapper.cpp | 3 ++- src/cuNumeric.jl | 2 +- src/ndarray/experimental.jl | 2 +- src/ndarray/ndarray.jl | 2 +- test/tests/linalg.jl | 2 +- 14 files changed, 76 insertions(+), 11 deletions(-) diff --git a/.githash b/.githash index d3e1f260..4ba34811 100644 --- a/.githash +++ b/.githash @@ -1 +1 @@ -0b5e8b5c50b9da50c47a8935e8f00f87f3b5e064 +21c1f1ca3fbeaea3f13b2a8d1e72d87ef8fa810c diff --git a/lib/cunumeric_jl_wrapper/include/accessors.h b/lib/cunumeric_jl_wrapper/include/accessors.h index 49a5c399..baf27c6a 100644 --- a/lib/cunumeric_jl_wrapper/include/accessors.h +++ b/lib/cunumeric_jl_wrapper/include/accessors.h @@ -1,4 +1,4 @@ -/* Copyright 2025 Northwestern University, +/* Copyright 2026 Northwestern University, * Carnegie Mellon University University * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -15,6 +15,7 @@ * * Author(s): David Krasowska * Ethan Meitz + * Nader Rahhal */ #pragma once diff --git a/lib/cunumeric_jl_wrapper/include/ndarray_c_api.h b/lib/cunumeric_jl_wrapper/include/ndarray_c_api.h index b51825a7..c0809652 100644 --- a/lib/cunumeric_jl_wrapper/include/ndarray_c_api.h +++ b/lib/cunumeric_jl_wrapper/include/ndarray_c_api.h @@ -1,3 +1,23 @@ +/* Copyright 2026 Northwestern University, + * Carnegie Mellon University University + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Author(s): David Krasowska + * Ethan Meitz + * Nader Rahhal + */ + #ifndef NDARRAY_C_API_H #define NDARRAY_C_API_H diff --git a/lib/cunumeric_jl_wrapper/include/types.h b/lib/cunumeric_jl_wrapper/include/types.h index 10faed01..600b6ec4 100644 --- a/lib/cunumeric_jl_wrapper/include/types.h +++ b/lib/cunumeric_jl_wrapper/include/types.h @@ -1,4 +1,4 @@ -/* Copyright 2025 Northwestern University, +/* Copyright 2026 Northwestern University, * Carnegie Mellon University University * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -15,6 +15,7 @@ * * Author(s): David Krasowska * Ethan Meitz + * Nader Rahhal */ #pragma once diff --git a/lib/cunumeric_jl_wrapper/include/ufi.h b/lib/cunumeric_jl_wrapper/include/ufi.h index 1400f706..f5558c16 100644 --- a/lib/cunumeric_jl_wrapper/include/ufi.h +++ b/lib/cunumeric_jl_wrapper/include/ufi.h @@ -1,4 +1,4 @@ -/* Copyright 2025 Northwestern University, +/* Copyright 2026 Northwestern University, * Carnegie Mellon University University * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -15,6 +15,7 @@ * * Author(s): David Krasowska * Ethan Meitz + * Nader Rahhal */ #pragma once diff --git a/lib/cunumeric_jl_wrapper/src/cuda.cpp b/lib/cunumeric_jl_wrapper/src/cuda.cpp index 718d2cf6..4d5256bf 100644 --- a/lib/cunumeric_jl_wrapper/src/cuda.cpp +++ b/lib/cunumeric_jl_wrapper/src/cuda.cpp @@ -1,4 +1,4 @@ -/* Copyright 2025 Northwestern University, +/* Copyright 2026 Northwestern University, * Carnegie Mellon University University * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -15,6 +15,7 @@ * * Author(s): David Krasowska * Ethan Meitz + * Nader Rahhal */ #include "cuda.h" diff --git a/lib/cunumeric_jl_wrapper/src/memory.cpp b/lib/cunumeric_jl_wrapper/src/memory.cpp index 65d42179..3e346977 100644 --- a/lib/cunumeric_jl_wrapper/src/memory.cpp +++ b/lib/cunumeric_jl_wrapper/src/memory.cpp @@ -1,3 +1,23 @@ +/* Copyright 2026 Northwestern University, + * Carnegie Mellon University University + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Author(s): David Krasowska + * Ethan Meitz + * Nader Rahhal + */ + #include #include #include diff --git a/lib/cunumeric_jl_wrapper/src/ndarray.cpp b/lib/cunumeric_jl_wrapper/src/ndarray.cpp index fcd35dd7..c479e4ed 100644 --- a/lib/cunumeric_jl_wrapper/src/ndarray.cpp +++ b/lib/cunumeric_jl_wrapper/src/ndarray.cpp @@ -1,3 +1,23 @@ +/* Copyright 2026 Northwestern University, + * Carnegie Mellon University University + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Author(s): David Krasowska + * Ethan Meitz + * Nader Rahhal + */ + #include #include #include diff --git a/lib/cunumeric_jl_wrapper/src/types.cpp b/lib/cunumeric_jl_wrapper/src/types.cpp index aee4431c..940aa5d7 100644 --- a/lib/cunumeric_jl_wrapper/src/types.cpp +++ b/lib/cunumeric_jl_wrapper/src/types.cpp @@ -1,4 +1,4 @@ -/* Copyright 2025 Northwestern University, +/* Copyright 2026 Northwestern University, * Carnegie Mellon University University * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/lib/cunumeric_jl_wrapper/src/wrapper.cpp b/lib/cunumeric_jl_wrapper/src/wrapper.cpp index b02204f9..91673699 100644 --- a/lib/cunumeric_jl_wrapper/src/wrapper.cpp +++ b/lib/cunumeric_jl_wrapper/src/wrapper.cpp @@ -1,4 +1,4 @@ -/* Copyright 2025 Northwestern University, +/* Copyright 2026 Northwestern University, * Carnegie Mellon University University * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -15,6 +15,7 @@ * * Author(s): David Krasowska * Ethan Meitz + * Nader Rahhal */ #include diff --git a/src/cuNumeric.jl b/src/cuNumeric.jl index 6208a7cc..53c0327d 100644 --- a/src/cuNumeric.jl +++ b/src/cuNumeric.jl @@ -15,7 +15,7 @@ * * Author(s): David Krasowska * Ethan Meitz - * Nader Rahal + * Nader Rahhal =# module cuNumeric diff --git a/src/ndarray/experimental.jl b/src/ndarray/experimental.jl index e5bf3099..2a0ad504 100644 --- a/src/ndarray/experimental.jl +++ b/src/ndarray/experimental.jl @@ -15,7 +15,7 @@ * * Author(s): David Krasowska * Ethan Meitz - * Nader Rahal + * Nader Rahhal =# function Experimental(setting::Bool) diff --git a/src/ndarray/ndarray.jl b/src/ndarray/ndarray.jl index 95709ebf..3d0d5314 100644 --- a/src/ndarray/ndarray.jl +++ b/src/ndarray/ndarray.jl @@ -15,7 +15,7 @@ * * Author(s): David Krasowska * Ethan Meitz - * Nader Rahal + * Nader Rahhal =# export unwrap diff --git a/test/tests/linalg.jl b/test/tests/linalg.jl index 7e3b2097..93bd6783 100644 --- a/test/tests/linalg.jl +++ b/test/tests/linalg.jl @@ -1,4 +1,4 @@ -#= Copyright 2025 Northwestern University, +#= Copyright 2026 Northwestern University, * Carnegie Mellon University University * * Licensed under the Apache License, Version 2.0 (the "License"); From 86b2fc85f92faef95641763738c2b71f0d4d056a Mon Sep 17 00:00:00 2001 From: krasow Date: Fri, 30 Jan 2026 18:25:44 -0600 Subject: [PATCH 6/7] update expirmental api --- .githash | 2 +- src/ndarray/experimental.jl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.githash b/.githash index 4ba34811..67a7b3e8 100644 --- a/.githash +++ b/.githash @@ -1 +1 @@ -21c1f1ca3fbeaea3f13b2a8d1e72d87ef8fa810c +b4d852ea08c0bdc26765e666ecf313eccabe3654 diff --git a/src/ndarray/experimental.jl b/src/ndarray/experimental.jl index 2a0ad504..81b51360 100644 --- a/src/ndarray/experimental.jl +++ b/src/ndarray/experimental.jl @@ -48,7 +48,7 @@ function Bob(in_arr::NDArray{T}, scalar::Float32) where {T} rt = Legate.get_runtime() lib = get_lib() - my_task = Legate.wrap_task(_BobTask; input_types=[T], output_types=[T]) + my_task = Legate.wrap_task(_BobTask) task = Legate.create_julia_task(rt, lib, my_task) From d7021afa645d3707cf80d119fd92f41f540d9661 Mon Sep 17 00:00:00 2001 From: krasow Date: Fri, 30 Jan 2026 19:28:52 -0600 Subject: [PATCH 7/7] update Bob -> test_task_interface --- .githash | 2 +- src/ndarray/experimental.jl | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.githash b/.githash index 67a7b3e8..94a39d1c 100644 --- a/.githash +++ b/.githash @@ -1 +1 @@ -b4d852ea08c0bdc26765e666ecf313eccabe3654 +86b2fc85f92faef95641763738c2b71f0d4d056a diff --git a/src/ndarray/experimental.jl b/src/ndarray/experimental.jl index 81b51360..e9d29ea6 100644 --- a/src/ndarray/experimental.jl +++ b/src/ndarray/experimental.jl @@ -33,14 +33,14 @@ function assert_experimental() end end -function _BobTask(args::Vector{Legate.TaskArgument}) +function _test_task(args::Vector{Legate.TaskArgument}) a, b, scalar = args @inbounds @simd for i in eachindex(a) b[i] = a[i] * scalar end end -function Bob(in_arr::NDArray{T}, scalar::Float32) where {T} +function test_task_interface(in_arr::NDArray{T}, scalar::Float32) where {T} assert_experimental() out_arr = cuNumeric.zeros(T, Base.size(in_arr)) @@ -48,7 +48,7 @@ function Bob(in_arr::NDArray{T}, scalar::Float32) where {T} rt = Legate.get_runtime() lib = get_lib() - my_task = Legate.wrap_task(_BobTask) + my_task = Legate.wrap_task(_test_task) task = Legate.create_julia_task(rt, lib, my_task)