From 1a3bd575ac487c0188ba4bb3524f176d259b486e Mon Sep 17 00:00:00 2001 From: Nader Rahhal <107228500+Nader-Rahhal@users.noreply.github.com> Date: Fri, 15 May 2026 13:06:15 -0500 Subject: [PATCH 1/3] hdf5 api --- src/ndarray/ndarray.jl | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ndarray/ndarray.jl b/src/ndarray/ndarray.jl index d58f6572..622a61d9 100644 --- a/src/ndarray/ndarray.jl +++ b/src/ndarray/ndarray.jl @@ -763,3 +763,11 @@ end function Base.isapprox(arr::NDArray{T}, arr2::NDArray{T}; atol=0, rtol=0) where {T} return compare(arr, arr2, atol, rtol) end + +function write_hdf5(arr::NDArray, path::String, dataset::String) + +end + +function read_hdf5(path::String, dataset::String) + +end \ No newline at end of file From ce6fa568ee6ca0738b79b4bb3182d02414197360 Mon Sep 17 00:00:00 2001 From: Nader Rahhal <107228500+Nader-Rahhal@users.noreply.github.com> Date: Fri, 15 May 2026 20:39:14 -0500 Subject: [PATCH 2/3] finish --- src/ndarray/ndarray.jl | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ndarray/ndarray.jl b/src/ndarray/ndarray.jl index 622a61d9..df739360 100644 --- a/src/ndarray/ndarray.jl +++ b/src/ndarray/ndarray.jl @@ -764,10 +764,17 @@ function Base.isapprox(arr::NDArray{T}, arr2::NDArray{T}; atol=0, rtol=0) where return compare(arr, arr2, atol, rtol) end -function write_hdf5(arr::NDArray, path::String, dataset::String) - +function write_hdf5(arr::NDArray{T,N}, path::String, dataset::String) where {T,N} + st_handle = get_store(arr) + la = Legate.LogicalArray{T,N}(st_handle[], size(arr)) + Legate.write_hdf5(la, path, dataset) end function read_hdf5(path::String, dataset::String) - + la = Legate.read_hdf5(path, dataset) + T = eltype(la) + N = Int(Legate.dim(la)) + st = Legate.data(la.handle) # call data on the raw impl + ptr = nda_store_to_ndarray(st) # pass directly + return NDArray(ptr, T, Val(N), nothing) end \ No newline at end of file From 3397a3d82a0500ef8d908298d4da540f66f1cbc8 Mon Sep 17 00:00:00 2001 From: Nader Rahhal <107228500+Nader-Rahhal@users.noreply.github.com> Date: Mon, 18 May 2026 13:00:14 -0500 Subject: [PATCH 3/3] fix naming --- src/ndarray/ndarray.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ndarray/ndarray.jl b/src/ndarray/ndarray.jl index df739360..082c6b1c 100644 --- a/src/ndarray/ndarray.jl +++ b/src/ndarray/ndarray.jl @@ -764,13 +764,13 @@ function Base.isapprox(arr::NDArray{T}, arr2::NDArray{T}; atol=0, rtol=0) where return compare(arr, arr2, atol, rtol) end -function write_hdf5(arr::NDArray{T,N}, path::String, dataset::String) where {T,N} +function h5write(path::String, dataset::String, arr::NDArray{T,N}) where {T,N} st_handle = get_store(arr) la = Legate.LogicalArray{T,N}(st_handle[], size(arr)) Legate.write_hdf5(la, path, dataset) end -function read_hdf5(path::String, dataset::String) +function h5read(path::String, dataset::String) la = Legate.read_hdf5(path, dataset) T = eltype(la) N = Int(Legate.dim(la))