From 94e346207515ab690e8f7f2a43e1e4aa286153ab Mon Sep 17 00:00:00 2001 From: maxchisto Date: Wed, 25 Mar 2026 21:22:36 -0700 Subject: [PATCH 1/7] working attempt at rewriting sigmoid gpu stays at 100% --- mojo/Makefile | 20 + mojo/bench/sigmoid_bench.mojo | 148 +++++ mojo/build_sigmoid_iop.sh | 51 ++ mojo/darktable-mojo.sh | 7 + mojo/iop/__init__.mojo | 1 + mojo/iop/sigmoid/__init__.mojo | 1 + mojo/iop/sigmoid/kernels.mojo | 281 +++++++++ mojo/iop/sigmoid/lib.mojo | 370 ++++++++++++ mojo/pixi.lock | 843 +++++++++++++++++++++++++++ mojo/pixi.toml | 14 + mojo/reproduce_fault/README.md | 28 + mojo/reproduce_fault/build.sh | 10 + mojo/reproduce_fault/lib_fault.mojo | 69 +++ mojo/reproduce_fault/lib_fault.so | Bin 0 -> 57088 bytes mojo/reproduce_fault/main.c | 26 + mojo/reproduce_fault/reproduce_crash | Bin 0 -> 16192 bytes mojo/sigmoid_build_instructions.md | 61 ++ mojo/validate_sigmoid | Bin 0 -> 16344 bytes mojo/validate_sigmoid.c | 62 ++ src/iop/sigmoid.c | 177 +++--- src/iop/sigmoid_mojo.h | 37 ++ 21 files changed, 2134 insertions(+), 72 deletions(-) create mode 100644 mojo/Makefile create mode 100644 mojo/bench/sigmoid_bench.mojo create mode 100755 mojo/build_sigmoid_iop.sh create mode 100755 mojo/darktable-mojo.sh create mode 100644 mojo/iop/__init__.mojo create mode 100644 mojo/iop/sigmoid/__init__.mojo create mode 100644 mojo/iop/sigmoid/kernels.mojo create mode 100644 mojo/iop/sigmoid/lib.mojo create mode 100644 mojo/pixi.lock create mode 100644 mojo/pixi.toml create mode 100644 mojo/reproduce_fault/README.md create mode 100755 mojo/reproduce_fault/build.sh create mode 100644 mojo/reproduce_fault/lib_fault.mojo create mode 100755 mojo/reproduce_fault/lib_fault.so create mode 100644 mojo/reproduce_fault/main.c create mode 100755 mojo/reproduce_fault/reproduce_crash create mode 100644 mojo/sigmoid_build_instructions.md create mode 100755 mojo/validate_sigmoid create mode 100644 mojo/validate_sigmoid.c create mode 100644 src/iop/sigmoid_mojo.h diff --git a/mojo/Makefile b/mojo/Makefile new file mode 100644 index 0000000000..3db8bd8b44 --- /dev/null +++ b/mojo/Makefile @@ -0,0 +1,20 @@ +MOJO = pixi run mojo +PLUGIN_DIR = /usr/lib/darktable/plugins + +.PHONY: all build install bench clean + +all: build + +build: libsigmoid_mojo.so + +libsigmoid_mojo.so: iop/sigmoid/lib.mojo iop/sigmoid/kernels.mojo + $(MOJO) build -I . iop/sigmoid/lib.mojo --emit shared-lib -o libsigmoid_mojo.so + +install: libsigmoid_mojo.so + sudo cp libsigmoid_mojo.so $(PLUGIN_DIR)/ + +bench: + $(MOJO) bench/sigmoid_bench.mojo + +clean: + rm -f libsigmoid_mojo.so diff --git a/mojo/bench/sigmoid_bench.mojo b/mojo/bench/sigmoid_bench.mojo new file mode 100644 index 0000000000..ced674b102 --- /dev/null +++ b/mojo/bench/sigmoid_bench.mojo @@ -0,0 +1,148 @@ +from std.gpu.host import DeviceContext +from layout import Layout, LayoutTensor +from std.utils import Index, IndexList +from std.math import sqrt, pow, max, min +from std.benchmark import Bench, BenchConfig, Bencher, BenchId +from std.algorithm.functional import elementwise +from iop.sigmoid.kernels import apply_sigmoid_rgb_ratio, apply_sigmoid_per_channel + +# Configuration +comptime WIDTH = 6016 +comptime HEIGHT = 4016 +comptime CHANNELS = 4 +comptime IMAGE_LAYOUT = Layout.row_major(HEIGHT, WIDTH, CHANNELS) +comptime DTYPE = DType.float32 + +fn run_sigmoid_rgb_ratio( + ctx: DeviceContext, + output: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], + input: LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin], + white_target: Float32, + black_target: Float32, + paper_exp: Float32, + film_fog: Float32, + film_power: Float32, + paper_power: Float32, + num_pixels: Int, +) raises: + @parameter + @always_inline + fn rgb_ratio_closure[ + width: Int, rank: Int, alignment: Int + ](indices: IndexList[rank]) capturing -> None: + var px_idx = indices[0] + var y = px_idx // WIDTH + var x = px_idx % WIDTH + var pix = input.load[width=4](Index(y, x, 0)) + var res = apply_sigmoid_rgb_ratio( + pix[0], pix[1], pix[2], pix[3], + white_target, black_target, paper_exp, film_fog, film_power, paper_power + ) + output.store[width=4](Index(y, x, 0), res) + + elementwise[rgb_ratio_closure, 1, target="gpu"](num_pixels, ctx) + + +fn run_sigmoid_per_channel( + ctx: DeviceContext, + output: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], + input: LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin], + white_target: Float32, + paper_exp: Float32, + film_fog: Float32, + contrast_power: Float32, + skew_power: Float32, + hue_preservation: Float32, + pipe_to_base: SIMD[DType.float32, 16], + base_to_rendering: SIMD[DType.float32, 16], + rendering_to_pipe: SIMD[DType.float32, 16], + num_pixels: Int, +) raises: + @parameter + @always_inline + fn per_channel_closure[ + width: Int, rank: Int, alignment: Int + ](indices: IndexList[rank]) capturing -> None: + var px_idx = indices[0] + var y = px_idx // WIDTH + var x = px_idx % WIDTH + var pix = input.load[width=4](Index(y, x, 0)) + var res = apply_sigmoid_per_channel( + pix[0], pix[1], pix[2], pix[3], + white_target, paper_exp, film_fog, contrast_power, skew_power, hue_preservation, + pipe_to_base, base_to_rendering, rendering_to_pipe + ) + output.store[width=4](Index(y, x, 0), res) + + elementwise[per_channel_closure, 1, target="gpu"](num_pixels, ctx) + + +fn main() raises: + print("Mojo Sigmoid Benchmark - New Structure") + var total_floats = HEIGHT * WIDTH * CHANNELS + var ctx = DeviceContext() + print("Using GPU API:", ctx.api()) + + var input_buffer_host = ctx.enqueue_create_host_buffer[DTYPE](total_floats) + var input_buffer_device = ctx.enqueue_create_buffer[DTYPE](total_floats) + var output_buffer_device = ctx.enqueue_create_buffer[DTYPE](total_floats) + + var input_image_host = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( + input_buffer_host + ) + var input_image_device = LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin]( + input_buffer_device + ) + var output_image_device = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( + output_buffer_device + ) + + # Initialize input data (simplified ramp for testing) + for y in range(HEIGHT): + for x in range(WIDTH): + var r = Float32(x) / WIDTH + var g = Float32(y) / HEIGHT + var b = Float32(0.5) + input_image_host.store[width=4]( + Index(y, x, 0), SIMD[DType.float32, 4](r, g, b, 1.0) + ) + + ctx.enqueue_copy(input_buffer_device, input_buffer_host) + + var white_target = Float32(1.0) + var black_target = Float32(0.000152) + var paper_exp = Float32(0.5) + var film_fog = Float32(0.0) + var contrast_power = Float32(2.5) + var skew_power = Float32(1.0) + var hue_preservation = Float32(1.0) + + var identity = SIMD[DType.float32, 16](0) + identity[0] = 1; identity[5] = 1; identity[10] = 1; identity[15] = 1 + + # Warmup + run_sigmoid_rgb_ratio(ctx, output_image_device, input_image_device, white_target, black_target, paper_exp, film_fog, contrast_power, skew_power, WIDTH * HEIGHT) + ctx.synchronize() + + # Benchmarking + var bench = Bench(BenchConfig(max_iters=100, num_warmup_iters=10)) + + @parameter + fn bench_rgb(mut b: Bencher) raises: + @parameter + fn run(ctx: DeviceContext) raises: + run_sigmoid_rgb_ratio(ctx, output_image_device, input_image_device, white_target, black_target, paper_exp, film_fog, contrast_power, skew_power, WIDTH * HEIGHT) + b.iter_custom[run](ctx) + ctx.synchronize() + + @parameter + fn bench_per(mut b: Bencher) raises: + @parameter + fn run(ctx: DeviceContext) raises: + run_sigmoid_per_channel(ctx, output_image_device, input_image_device, white_target, paper_exp, film_fog, contrast_power, skew_power, hue_preservation, identity, identity, identity, WIDTH * HEIGHT) + b.iter_custom[run](ctx) + ctx.synchronize() + + bench.bench_function[bench_rgb](BenchId("Mojo-Sigmoid-RGB-Ratio-New")) + bench.bench_function[bench_per](BenchId("Mojo-Sigmoid-Per-Channel-New")) + print(bench) diff --git a/mojo/build_sigmoid_iop.sh b/mojo/build_sigmoid_iop.sh new file mode 100755 index 0000000000..0c06170049 --- /dev/null +++ b/mojo/build_sigmoid_iop.sh @@ -0,0 +1,51 @@ +#!/bin/bash +# Build libsigmoid.so from the darktable source tree. +# This mimics what CMake does (run introspection, then compile + link). + +set -e + +SRC=/home/mc/code/darktable +BUILD=/tmp/sigmoid_build +DEST=$BUILD/libsigmoid.so + +mkdir -p "$BUILD" + +# Step 1: Run introspection (generates introspection_sigmoid.c) +echo "=== Step 1: Introspection ===" +perl "$SRC/tools/introspection/parser.pl" \ + "$SRC/src/" \ + "$SRC/src/iop/sigmoid.c" \ + "$BUILD/introspection_sigmoid.c" +echo " -> $BUILD/introspection_sigmoid.c ($(wc -l < "$BUILD/introspection_sigmoid.c") lines)" + +# Step 2: Collect flags +GTK_FLAGS=$(pkg-config --cflags gtk+-3.0 glib-2.0 librsvg-2.0 lcms2 json-glib-1.0) +DT_INCLUDE="-I$SRC/src -I$SRC/src/iop -I$SRC/build/bin -I/usr/lib/darktable" +DEFINES="-DHAVE_CONFIG_H -DHAVE_OPENCL -D_GNU_SOURCE -include common/module_api.h -include iop/iop_api.h" +CFLAGS="-O3 -march=native -fPIC -fvisibility=hidden -fopenmp $GTK_FLAGS $DT_INCLUDE $DEFINES" +LDFLAGS="-L/usr/lib/darktable -ldarktable -lm -lgomp -Wl,-rpath,/usr/lib/darktable" + +echo "" +echo "=== Step 2: Compile ===" +gcc $CFLAGS \ + -Wno-unused-function \ + -Wno-deprecated-declarations \ + -c "$BUILD/introspection_sigmoid.c" \ + -o "$BUILD/introspection_sigmoid.o" 2>&1 +echo " -> $BUILD/introspection_sigmoid.o" + +echo "" +echo "=== Step 3: Link ===" +gcc -shared -fPIC -fopenmp \ + "$BUILD/introspection_sigmoid.o" \ + $LDFLAGS \ + -o "$DEST" +echo " -> $DEST" + +echo "" +echo "=== Step 4: Verify ===" +nm -D "$DEST" | grep " T " | awk '{print $3}' + +echo "" +echo "Build complete: $DEST" +echo "Size: $(du -sh "$DEST" | cut -f1)" diff --git a/mojo/darktable-mojo.sh b/mojo/darktable-mojo.sh new file mode 100755 index 0000000000..0e10c48be9 --- /dev/null +++ b/mojo/darktable-mojo.sh @@ -0,0 +1,7 @@ +#!/bin/bash +MOJO_LIB_DIR="/home/mc/code/darktable/mojo/.pixi/envs/default/lib" +# We need both the Mojo libs and the directory where libsigmoid_mojo.so lives (usually /usr/lib) +export LD_LIBRARY_PATH="$MOJO_LIB_DIR:/usr/lib:$LD_LIBRARY_PATH" + +echo "--- Launching Darktable with Mojo GPU Support ---" +/usr/bin/darktable -d opencl "$@" diff --git a/mojo/iop/__init__.mojo b/mojo/iop/__init__.mojo new file mode 100644 index 0000000000..0c393fc1b4 --- /dev/null +++ b/mojo/iop/__init__.mojo @@ -0,0 +1 @@ +# iop package diff --git a/mojo/iop/sigmoid/__init__.mojo b/mojo/iop/sigmoid/__init__.mojo new file mode 100644 index 0000000000..256cd8163f --- /dev/null +++ b/mojo/iop/sigmoid/__init__.mojo @@ -0,0 +1 @@ +# iop.sigmoid package diff --git a/mojo/iop/sigmoid/kernels.mojo b/mojo/iop/sigmoid/kernels.mojo new file mode 100644 index 0000000000..c5b1a3d220 --- /dev/null +++ b/mojo/iop/sigmoid/kernels.mojo @@ -0,0 +1,281 @@ +from std.math import isnan, sqrt, pow, max, min + +@always_inline +fn generalized_loglogistic_sigmoid_scalar( + value: Float32, + magnitude: Float32, + paper_exp: Float32, + film_fog: Float32, + film_power: Float32, + paper_power: Float32, +) -> Float32: + var clamped_value = max(value, Float32(0.0)) + var film_response = pow(film_fog + clamped_value, film_power) + var paper_response = magnitude * pow( + film_response / (paper_exp + film_response), paper_power + ) + if isnan(paper_response): + return magnitude + return paper_response + +@always_inline +fn apply_sigmoid_rgb_ratio( + in_r: Float32, + in_g: Float32, + in_b: Float32, + in_a: Float32, + white_target: Float32, + black_target: Float32, + paper_exp: Float32, + film_fog: Float32, + film_power: Float32, + paper_power: Float32, +) -> SIMD[DType.float32, 4]: + # Desaturate negative values + var avg = max((in_r + in_g + in_b) / 3.0, Float32(0.0)) + var min_v = min(min(in_r, in_g), in_b) + var sat = Float32(1.0) + if min_v < 0.0: + sat = -avg / (min_v - avg) + + var p_r = avg + sat * (in_r - avg) + var p_g = avg + sat * (in_g - avg) + var p_b = avg + sat * (in_b - avg) + + var luma = (p_r + p_g + p_b) / 3.0 + var mapped_luma = generalized_loglogistic_sigmoid_scalar( + luma, white_target, paper_exp, film_fog, film_power, paper_power + ) + + if luma > 1e-9: + var scale = mapped_luma / luma + p_r *= scale + p_g *= scale + p_b *= scale + else: + p_r = mapped_luma + p_g = mapped_luma + p_b = mapped_luma + + var p_min = min(min(p_r, p_g), p_b) + var p_max = max(max(p_r, p_g), p_b) + var eps = Float32(1e-6) + var d_white = (white_target - mapped_luma) / (p_max - mapped_luma + eps) + var d_black = (black_target - mapped_luma) / (p_min - mapped_luma - eps) + var db_vs_chroma = min(d_white, d_black) + var cvm_border = (mapped_luma - p_min) / (mapped_luma + eps) + var p_chr_adj = 1.0 / (cvm_border * db_vs_chroma + eps) + var h_chr = ( + 2.0 * cvm_border / (1.0 - cvm_border * cvm_border + eps) + ) * p_chr_adj + var h_z = sqrt(h_chr * h_chr + 1.0) + var chroma_f = h_chr / (1.0 + h_z) * db_vs_chroma + + return SIMD[DType.float32, 4]( + mapped_luma + chroma_f * (p_r - mapped_luma), + mapped_luma + chroma_f * (p_g - mapped_luma), + mapped_luma + chroma_f * (p_b - mapped_luma), + in_a, + ) + +@always_inline +fn apply_sigmoid_per_channel( + in_r: Float32, + in_g: Float32, + in_b: Float32, + in_a: Float32, + white_target: Float32, + paper_exp: Float32, + film_fog: Float32, + contrast_power: Float32, + skew_power: Float32, + hue_preservation: Float32, + pipe_to_base: SIMD[DType.float32, 16], + base_to_rendering: SIMD[DType.float32, 16], + rendering_to_pipe: SIMD[DType.float32, 16], +) -> SIMD[DType.float32, 4]: + # 1. Transform to base space + var i_r = ( + pipe_to_base[0] * in_r + pipe_to_base[1] * in_g + pipe_to_base[2] * in_b + ) + var i_g = ( + pipe_to_base[4] * in_r + pipe_to_base[5] * in_g + pipe_to_base[6] * in_b + ) + var i_b = ( + pipe_to_base[8] * in_r + + pipe_to_base[9] * in_g + + pipe_to_base[10] * in_b + ) + + # 2. Desaturate negative + var avg = max((i_r + i_g + i_b) / 3.0, Float32(0.0)) + var min_v = min(min(i_r, i_g), i_b) + var sat = Float32(1.0) + if min_v < 0.0: + sat = -avg / (min_v - avg) + i_r = avg + sat * (i_r - avg) + i_g = avg + sat * (i_g - avg) + i_b = avg + sat * (i_b - avg) + + # 3. Transform to rendering space + var r_r = ( + base_to_rendering[0] * i_r + + base_to_rendering[1] * i_g + + base_to_rendering[2] * i_b + ) + var r_g = ( + base_to_rendering[4] * i_r + + base_to_rendering[5] * i_g + + base_to_rendering[6] * i_b + ) + var r_b = ( + base_to_rendering[8] * i_r + + base_to_rendering[9] * i_g + + base_to_rendering[10] * i_b + ) + + # 4. Per-channel sigmoid curves + var pc_r = generalized_loglogistic_sigmoid_scalar( + r_r, white_target, paper_exp, film_fog, contrast_power, skew_power + ) + var pc_g = generalized_loglogistic_sigmoid_scalar( + r_g, white_target, paper_exp, film_fog, contrast_power, skew_power + ) + var pc_b = generalized_loglogistic_sigmoid_scalar( + r_b, white_target, paper_exp, film_fog, contrast_power, skew_power + ) + + # 5. Preserve hue & energy + var p_min: Float32 + var p_mid: Float32 + var p_max: Float32 + var pc_min: Float32 + var pc_mid: Float32 + var pc_max: Float32 + + if r_r >= r_g: + if r_g >= r_b: # R G B + p_max = r_r + p_mid = r_g + p_min = r_b + pc_max = pc_r + pc_mid = pc_g + pc_min = pc_b + elif r_b >= r_r: # B R G + p_max = r_b + p_mid = r_r + p_min = r_g + pc_max = pc_b + pc_mid = pc_r + pc_min = pc_g + else: # R B G + p_max = r_r + p_mid = r_b + p_min = r_g + pc_max = pc_r + pc_mid = pc_b + pc_min = pc_g + else: + if r_r >= r_b: # G R B + p_max = r_g + p_mid = r_r + p_min = r_b + pc_max = pc_g + pc_mid = pc_r + pc_min = pc_b + elif r_b >= r_g: # B G R + p_max = r_b + p_mid = r_g + p_min = r_r + pc_max = pc_b + pc_mid = pc_g + pc_min = pc_r + else: # G B R + p_max = r_g + p_mid = r_b + p_min = r_r + pc_max = pc_g + pc_mid = pc_b + pc_min = pc_r + + var chroma = p_max - p_min + var midscale = Float32(0.0) + if chroma != 0.0: + midscale = (p_mid - p_min) / chroma + + var f_hc = pc_min + (pc_max - pc_min) * midscale + var n_mid = (1.0 - hue_preservation) * pc_mid + hue_preservation * f_hc + + var blend = 2.0 * p_min / (p_min + p_mid + 1e-9) + var target = blend * (pc_r + pc_g + pc_b) + (1.0 - blend) * ( + pc_min + n_mid + pc_max + ) + + var res_min: Float32 + var res_mid: Float32 + var res_max: Float32 + if n_mid <= pc_mid: + res_mid = ( + (1.0 - hue_preservation) * pc_mid + + hue_preservation + * (midscale * pc_max + (1.0 - midscale) * (target - pc_max)) + ) / (1.0 + hue_preservation * (1.0 - midscale)) + res_min = target - pc_max - res_mid + res_max = pc_max + else: + res_mid = ( + (1.0 - hue_preservation) * pc_mid + + hue_preservation + * (pc_min * (1.0 - midscale) + midscale * (target - pc_min)) + ) / (1.0 + hue_preservation * midscale) + res_min = pc_min + res_max = target - pc_min - res_mid + + var res_r: Float32 + var res_g: Float32 + var res_b: Float32 + if r_r >= r_g: + if r_g >= r_b: # R G B + res_r = res_max + res_g = res_mid + res_b = res_min + elif r_b >= r_r: # B R G + res_b = res_max + res_r = res_mid + res_g = res_min + else: # R B G + res_r = res_max + res_b = res_mid + res_g = res_min + else: + if r_r >= r_b: # G R B + res_g = res_max + res_r = res_mid + res_b = res_min + elif r_b >= r_g: # B G R + res_b = res_max + res_g = res_mid + res_r = res_min + else: # G B R + res_g = res_max + res_b = res_mid + res_r = res_min + + # 6. Transform to pipe space + var out_r = ( + rendering_to_pipe[0] * res_r + + rendering_to_pipe[1] * res_g + + rendering_to_pipe[2] * res_b + ) + var out_g = ( + rendering_to_pipe[4] * res_r + + rendering_to_pipe[5] * res_g + + rendering_to_pipe[6] * res_b + ) + var out_b = ( + rendering_to_pipe[8] * res_r + + rendering_to_pipe[9] * res_g + + rendering_to_pipe[10] * res_b + ) + + return SIMD[DType.float32, 4](out_r, out_g, out_b, in_a) diff --git a/mojo/iop/sigmoid/lib.mojo b/mojo/iop/sigmoid/lib.mojo new file mode 100644 index 0000000000..e0bcb90375 --- /dev/null +++ b/mojo/iop/sigmoid/lib.mojo @@ -0,0 +1,370 @@ +from std.gpu.host import DeviceContext +from layout import Layout, LayoutTensor, UNKNOWN_VALUE +from layout.runtime_layout import RuntimeLayout +from std.utils import Index, IndexList +from std.algorithm.functional import elementwise +from std.gpu.host.compile import get_gpu_target +from std.memory.unsafe_pointer import alloc, UnsafePointer +from std.sys import simd_width_of +from iop.sigmoid.kernels import ( + apply_sigmoid_rgb_ratio, + apply_sigmoid_per_channel, +) + +comptime CHANNELS = 4 +comptime IMAGE_LAYOUT = Layout.row_major(UNKNOWN_VALUE, UNKNOWN_VALUE, CHANNELS) +comptime DTYPE = DType.float32 +comptime SIMD_WIDTH = simd_width_of[DTYPE, target=get_gpu_target()]() + + +struct MojoCtx: + var use_gpu: Int + var dctx_addr: Int + + fn __init__(out self, use_gpu: Int, dctx_addr: Int): + self.use_gpu = use_gpu + self.dctx_addr = dctx_addr + + +struct CParamsView: + var p: UnsafePointer[Float32, MutAnyOrigin] + + fn __init__(out self, p: Int): + self.p = UnsafePointer[Float32, MutAnyOrigin](unsafe_from_address=p) + + # In SigmoidMojoParams, each scalar is a float[4] array + fn white_target(self) -> Float32: + return self.p[0] + + fn black_target(self) -> Float32: + return self.p[4] + + fn paper_exposure(self) -> Float32: + return self.p[8] + + fn film_fog(self) -> Float32: + return self.p[12] + + fn film_power(self) -> Float32: + return self.p[16] + + fn paper_power(self) -> Float32: + return self.p[20] + + fn hue_preservation(self) -> Float32: + return self.p[32] # hue_preservation[4] at index 32 + + fn pipe_to_base(self) -> SIMD[DType.float32, 16]: + var m = SIMD[DType.float32, 16]() + for i in range(16): + m[i] = self.p[36 + i] + return m + + fn base_to_rendering(self) -> SIMD[DType.float32, 16]: + var m = SIMD[DType.float32, 16]() + for i in range(16): + m[i] = self.p[52 + i] + return m + + fn rendering_to_pipe(self) -> SIMD[DType.float32, 16]: + var m = SIMD[DType.float32, 16]() + for i in range(16): + m[i] = self.p[68 + i] + return m + + +# ========================================================================= +# INTERNAL GPU LAUNCHERS (ZERO-POINTER PARAMETERS) +# ========================================================================= + + +fn _launch_rgb_ratio_gpu( + dctx: DeviceContext, + dev_in_ptr: Int, + dev_out_ptr: Int, + wt: Float32, + bt: Float32, + pe: Float32, + ff: Float32, + fp: Float32, + pp: Float32, + num_pixels: Int, +) raises: + @parameter + @always_inline + fn gpu_kernel[ + sw: Int, rank: Int, align: Int + ](indices: IndexList[rank]) capturing -> None: + var idx = indices[0] * 4 + var pin = UnsafePointer[Float32, ImmutAnyOrigin]( + unsafe_from_address=dev_in_ptr + ) + var pout = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=dev_out_ptr + ) + + var r = apply_sigmoid_rgb_ratio( + pin[idx], + pin[idx + 1], + pin[idx + 2], + pin[idx + 3], + wt, + bt, + pe, + ff, + fp, + pp, + ) + pout[idx] = r[0] + pout[idx + 1] = r[1] + pout[idx + 2] = r[2] + pout[idx + 3] = r[3] + + elementwise[gpu_kernel, SIMD_WIDTH, target="gpu"](num_pixels, dctx) + dctx.synchronize() + + +fn _launch_per_channel_gpu( + dctx: DeviceContext, + dev_in_ptr: Int, + dev_out_ptr: Int, + wt: Float32, + pe: Float32, + ff: Float32, + fp: Float32, + pp: Float32, + hp: Float32, + kptb: SIMD[DType.float32, 16], + kbtr: SIMD[DType.float32, 16], + krtp: SIMD[DType.float32, 16], + num_pixels: Int, +) raises: + @parameter + @always_inline + fn gpu_kernel[ + sw: Int, rank: Int, align: Int + ](indices: IndexList[rank]) capturing -> None: + var idx = indices[0] * 4 + var pin = UnsafePointer[Float32, ImmutAnyOrigin]( + unsafe_from_address=dev_in_ptr + ) + var pout = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=dev_out_ptr + ) + + var r = apply_sigmoid_per_channel( + pin[idx], + pin[idx + 1], + pin[idx + 2], + pin[idx + 3], + wt, + pe, + ff, + fp, + pp, + hp, + kptb, + kbtr, + krtp, + ) + pout[idx] = r[0] + pout[idx + 1] = r[1] + pout[idx + 2] = r[2] + pout[idx + 3] = r[3] + + elementwise[gpu_kernel, SIMD_WIDTH, target="gpu"](num_pixels, dctx) + dctx.synchronize() + + +# ========================================================================= +# EXPORTED INTERFACE +# ========================================================================= + + +@export +fn sigmoid_mojo_init(ctx_out: UnsafePointer[Int, MutAnyOrigin], use_gpu: Int32): + var gpu = use_gpu != 0 + var dctx_addr = 0 + if gpu: + try: + var d_ptr = alloc[DeviceContext](1) + d_ptr.init_pointee_move(DeviceContext()) + dctx_addr = Int(d_ptr) + print("Mojo: GPU Context Initialized Successfully") + except e: + print("Mojo: GPU Init Error (falling back to CPU):", String(e)) + gpu = False + else: + print("Mojo: CPU Context Initialized") + var p = alloc[MojoCtx](1) + p[0].use_gpu = 1 if gpu else 0 + p[0].dctx_addr = dctx_addr + ctx_out[0] = Int(p) + + +@export +fn sigmoid_mojo_destroy(ctx_addr: Int): + var p = UnsafePointer[MojoCtx, MutAnyOrigin](unsafe_from_address=ctx_addr) + if p[0].dctx_addr != 0: + var dctx_ptr = UnsafePointer[DeviceContext, MutAnyOrigin]( + unsafe_from_address=p[0].dctx_addr + ) + dctx_ptr.destroy_pointee() + dctx_ptr.free() + p.free() + + +@export +fn sigmoid_mojo_rgb_ratio( + ctx_addr: Int, + in_addr: Int, + out_addr: Int, + width: Int32, + height: Int32, + p_addr: Int, +): + var ctx_p = UnsafePointer[MojoCtx, MutAnyOrigin]( + unsafe_from_address=ctx_addr + ) + var use_gpu = ctx_p[0].use_gpu != 0 + var dctx_addr = ctx_p[0].dctx_addr + var params = CParamsView(p_addr) + var in_p = UnsafePointer[Float32, MutAnyOrigin](unsafe_from_address=in_addr) + var out_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=out_addr + ) + var h = Int(height) + var w = Int(width) + var num_pixels = h * w + + if use_gpu and dctx_addr != 0: + try: + var dctx = UnsafePointer[DeviceContext, MutAnyOrigin]( + unsafe_from_address=dctx_addr + )[0] + var dev_in = dctx.enqueue_create_buffer[DTYPE](num_pixels * 4) + var dev_out = dctx.enqueue_create_buffer[DTYPE](num_pixels * 4) + dctx.enqueue_copy(dev_in, in_p) + + _launch_rgb_ratio_gpu( + dctx, + Int(dev_in.unsafe_ptr()), + Int(dev_out.unsafe_ptr()), + params.white_target(), + params.black_target(), + params.paper_exposure(), + params.film_fog(), + params.film_power(), + params.paper_power(), + num_pixels, + ) + + dctx.enqueue_copy(out_p, dev_out) + dctx.synchronize() + except e: + print("GPU Run Error (RGB Ratio):", String(e)) + else: + var rt = RuntimeLayout[IMAGE_LAYOUT].row_major( + IndexList[3](h, w, CHANNELS) + ) + var in_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin](in_p, rt) + var out_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin](out_p, rt) + var wt = params.white_target() + var bt = params.black_target() + var pe = params.paper_exposure() + var ff = params.film_fog() + var fp = params.film_power() + var pp = params.paper_power() + for i in range(num_pixels): + var px = in_t.load[width=4](Index(i // w, i % w, 0)) + var r = apply_sigmoid_rgb_ratio( + px[0], px[1], px[2], px[3], wt, bt, pe, ff, fp, pp + ) + out_t.store[width=4](Index(i // w, i % w, 0), r) + + +@export +fn sigmoid_mojo_per_channel( + ctx_addr: Int, + in_addr: Int, + out_addr: Int, + width: Int32, + height: Int32, + p_addr: Int, +): + var ctx_p = UnsafePointer[MojoCtx, MutAnyOrigin]( + unsafe_from_address=ctx_addr + ) + var use_gpu = ctx_p[0].use_gpu != 0 + var dctx_addr = ctx_p[0].dctx_addr + var params = CParamsView(p_addr) + var in_p = UnsafePointer[Float32, MutAnyOrigin](unsafe_from_address=in_addr) + var out_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=out_addr + ) + var h = Int(height) + var w = Int(width) + var num_pixels = h * w + + if use_gpu and dctx_addr != 0: + try: + var dctx = UnsafePointer[DeviceContext, MutAnyOrigin]( + unsafe_from_address=dctx_addr + )[0] + var dev_in = dctx.enqueue_create_buffer[DTYPE](num_pixels * 4) + var dev_out = dctx.enqueue_create_buffer[DTYPE](num_pixels * 4) + dctx.enqueue_copy(dev_in, in_p) + + _launch_per_channel_gpu( + dctx, + Int(dev_in.unsafe_ptr()), + Int(dev_out.unsafe_ptr()), + params.white_target(), + params.paper_exposure(), + params.film_fog(), + params.film_power(), + params.paper_power(), + params.hue_preservation(), + params.pipe_to_base(), + params.base_to_rendering(), + params.rendering_to_pipe(), + num_pixels, + ) + + dctx.enqueue_copy(out_p, dev_out) + dctx.synchronize() + except e: + print("GPU Error (Per Channel):", String(e)) + else: + var rt = RuntimeLayout[IMAGE_LAYOUT].row_major( + IndexList[3](h, w, CHANNELS) + ) + var in_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin](in_p, rt) + var out_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin](out_p, rt) + var wt = params.white_target() + var pe = params.paper_exposure() + var ff = params.film_fog() + var fp = params.film_power() + var pp = params.paper_power() + var hp = params.hue_preservation() + var ptb = params.pipe_to_base() + var btr = params.base_to_rendering() + var rtp = params.rendering_to_pipe() + for i in range(num_pixels): + var px = in_t.load[width=4](Index(i // w, i % w, 0)) + var r = apply_sigmoid_per_channel( + px[0], + px[1], + px[2], + px[3], + wt, + pe, + ff, + fp, + pp, + hp, + ptb, + btr, + rtp, + ) + out_t.store[width=4](Index(i // w, i % w, 0), r) diff --git a/mojo/pixi.lock b/mojo/pixi.lock new file mode 100644 index 0000000000..c8ff562623 --- /dev/null +++ b/mojo/pixi.lock @@ -0,0 +1,843 @@ +version: 6 +environments: + default: + channels: + - url: https://conda.modular.com/max-nightly/ + - url: https://conda.anaconda.org/conda-forge/ + options: + pypi-prerelease-mode: if-necessary-or-explicit + packages: + linux-64: + - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.3-py314hd8ed1ab_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-ha1258a1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.4-hecca717_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.21-h280c20c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.52.0-hf4e2dac_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.modular.com/max-nightly/linux-64/max-26.3.0.dev2026031105-3.14release.conda + - conda: https://conda.modular.com/max-nightly/linux-64/max-core-26.3.0.dev2026031105-release.conda + - conda: https://conda.modular.com/max-nightly/noarch/mblack-26.3.0.dev2026031105-release.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://conda.modular.com/max-nightly/linux-64/mojo-0.26.3.0.dev2026031105-release.conda + - conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-0.26.3.0.dev2026031105-release.conda + - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-0.26.3.0.dev2026031105-release.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py314h2b28147_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.3-h4df99d1_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py314h67df5f8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hda471dd_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.3.3-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py314h5bd0f2a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h41580af_10.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda +packages: +- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda + build_number: 20 + sha256: 1dd3fffd892081df9726d7eb7e0dea6198962ba775bd88842135a4ddb4deb3c9 + md5: a9f577daf3de00bca7c3c76c0ecbd1de + depends: + - __glibc >=2.17,<3.0.a0 + - libgomp >=7.5.0 + constrains: + - openmp_impl <0.0a0 + license: BSD-3-Clause + license_family: BSD + size: 28948 + timestamp: 1770939786096 +- conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda + sha256: a3967b937b9abf0f2a99f3173fa4630293979bd1644709d89580e7c62a544661 + md5: aaa2a381ccc56eac91d63b6c1240312f + depends: + - cpython + - python-gil + license: MIT + license_family: MIT + size: 8191 + timestamp: 1744137672556 +- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda + sha256: 0b75d45f0bba3e95dc693336fa51f40ea28c980131fec438afb7ce6118ed05f6 + md5: d2ffd7602c02f2b316fd921d39876885 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: bzip2-1.0.6 + license_family: BSD + size: 260182 + timestamp: 1771350215188 +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda + sha256: 67cc7101b36421c5913a1687ef1b99f85b5d6868da3abbf6ec1a4181e79782fc + md5: 4492fd26db29495f0ba23f146cd5638d + depends: + - __unix + license: ISC + size: 147413 + timestamp: 1772006283803 +- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda + sha256: 38cfe1ee75b21a8361c8824f5544c3866f303af1762693a178266d7f198e8715 + md5: ea8a6c3256897cc31263de9f455e25d9 + depends: + - python >=3.10 + - __unix + - python + license: BSD-3-Clause + license_family: BSD + size: 97676 + timestamp: 1764518652276 +- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.3-py314hd8ed1ab_101.conda + noarch: generic + sha256: 91b06300879df746214f7363d6c27c2489c80732e46a369eb2afc234bcafb44c + md5: 3bb89e4f795e5414addaa531d6b1500a + depends: + - python >=3.14,<3.15.0a0 + - python_abi * *_cp314 + license: Python-2.0 + size: 50078 + timestamp: 1770674447292 +- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda + sha256: 142a722072fa96cf16ff98eaaf641f54ab84744af81754c292cb81e0881c0329 + md5: 186a18e3ba246eccfc7cff00cd19a870 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + license: MIT + license_family: MIT + size: 12728445 + timestamp: 1767969922681 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + sha256: c18ab120a0613ada4391b15981d86ff777b5690ca461ea7e9e49531e8f374745 + md5: 63ccfdc3a3ce25b027b8767eb722fca8 + depends: + - python >=3.9 + - zipp >=3.20 + - python + license: Apache-2.0 + license_family: APACHE + size: 34641 + timestamp: 1747934053147 +- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda + sha256: 19d8bd5bb2fde910ec59e081eeb59529491995ce0d653a5209366611023a0b3a + md5: 4ebae00eae9705b0c3d6d1018a81d047 + depends: + - importlib-metadata >=4.8.3 + - jupyter_core >=4.12,!=5.0.* + - python >=3.9 + - python-dateutil >=2.8.2 + - pyzmq >=23.0 + - tornado >=6.2 + - traitlets >=5.3 + license: BSD-3-Clause + license_family: BSD + size: 106342 + timestamp: 1733441040958 +- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda + sha256: 1d34b80e5bfcd5323f104dbf99a2aafc0e5d823019d626d0dce5d3d356a2a52a + md5: b38fe4e78ee75def7e599843ef4c1ab0 + depends: + - __unix + - python + - platformdirs >=2.5 + - python >=3.10 + - traitlets >=5.3 + - python + constrains: + - pywin32 >=300 + license: BSD-3-Clause + license_family: BSD + size: 65503 + timestamp: 1760643864586 +- conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda + sha256: 0960d06048a7185d3542d850986d807c6e37ca2e644342dd0c72feefcf26c2a4 + md5: b38117a3c920364aff79f870c984b4a3 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: LGPL-2.1-or-later + size: 134088 + timestamp: 1754905959823 +- conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-ha1258a1_0.conda + sha256: 3e307628ca3527448dd1cb14ad7bb9d04d1d28c7d4c5f97ba196ae984571dd25 + md5: fb53fb07ce46a575c5d004bbc96032c2 + depends: + - __glibc >=2.17,<3.0.a0 + - keyutils >=1.6.3,<2.0a0 + - libedit >=3.1.20250104,<3.2.0a0 + - libedit >=3.1.20250104,<4.0a0 + - libgcc >=14 + - libstdcxx >=14 + - openssl >=3.5.5,<4.0a0 + license: MIT + license_family: MIT + size: 1386730 + timestamp: 1769769569681 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_101.conda + sha256: 565941ac1f8b0d2f2e8f02827cbca648f4d18cd461afc31f15604cd291b5c5f3 + md5: 12bd9a3f089ee6c9266a37dab82afabd + depends: + - __glibc >=2.17,<3.0.a0 + - zstd >=1.5.7,<1.6.0a0 + constrains: + - binutils_impl_linux-64 2.45.1 + license: GPL-3.0-only + license_family: GPL + size: 725507 + timestamp: 1770267139900 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda + build_number: 5 + sha256: 18c72545080b86739352482ba14ba2c4815e19e26a7417ca21a95b76ec8da24c + md5: c160954f7418d7b6e87eaf05a8913fa9 + depends: + - libopenblas >=0.3.30,<0.3.31.0a0 + - libopenblas >=0.3.30,<1.0a0 + constrains: + - mkl <2026 + - liblapack 3.11.0 5*_openblas + - libcblas 3.11.0 5*_openblas + - blas 2.305 openblas + - liblapacke 3.11.0 5*_openblas + license: BSD-3-Clause + license_family: BSD + size: 18213 + timestamp: 1765818813880 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda + build_number: 5 + sha256: 0cbdcc67901e02dc17f1d19e1f9170610bd828100dc207de4d5b6b8ad1ae7ad8 + md5: 6636a2b6f1a87572df2970d3ebc87cc0 + depends: + - libblas 3.11.0 5_h4a7cf45_openblas + constrains: + - liblapacke 3.11.0 5*_openblas + - blas 2.305 openblas + - liblapack 3.11.0 5*_openblas + license: BSD-3-Clause + license_family: BSD + size: 18194 + timestamp: 1765818837135 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda + sha256: d789471216e7aba3c184cd054ed61ce3f6dac6f87a50ec69291b9297f8c18724 + md5: c277e0a4d549b03ac1e9d6cbbe3d017b + depends: + - ncurses + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - ncurses >=6.5,<7.0a0 + license: BSD-2-Clause + license_family: BSD + size: 134676 + timestamp: 1738479519902 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.4-hecca717_0.conda + sha256: d78f1d3bea8c031d2f032b760f36676d87929b18146351c4464c66b0869df3f5 + md5: e7f7ce06ec24cfcfb9e36d28cf82ba57 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + constrains: + - expat 2.7.4.* + license: MIT + license_family: MIT + size: 76798 + timestamp: 1771259418166 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda + sha256: 31f19b6a88ce40ebc0d5a992c131f57d919f73c0b92cd1617a5bec83f6e961e6 + md5: a360c33a5abe61c07959e449fa1453eb + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: MIT + license_family: MIT + size: 58592 + timestamp: 1769456073053 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda + sha256: faf7d2017b4d718951e3a59d081eb09759152f93038479b768e3d612688f83f5 + md5: 0aa00f03f9e39fb9876085dee11a85d4 + depends: + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex >=4.5 + constrains: + - libgcc-ng ==15.2.0=*_18 + - libgomp 15.2.0 he0feb66_18 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 1041788 + timestamp: 1771378212382 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_18.conda + sha256: d2c9fad338fd85e4487424865da8e74006ab2e2475bd788f624d7a39b2a72aee + md5: 9063115da5bc35fdc3e1002e69b9ef6e + depends: + - libgfortran5 15.2.0 h68bc16d_18 + constrains: + - libgfortran-ng ==15.2.0=*_18 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 27523 + timestamp: 1771378269450 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_18.conda + sha256: 539b57cf50ec85509a94ba9949b7e30717839e4d694bc94f30d41c9d34de2d12 + md5: 646855f357199a12f02a87382d429b75 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15.2.0 + constrains: + - libgfortran 15.2.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 2482475 + timestamp: 1771378241063 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda + sha256: 21337ab58e5e0649d869ab168d4e609b033509de22521de1bfed0c031bfc5110 + md5: 239c5e9546c38a1e884d69effcf4c882 + depends: + - __glibc >=2.17,<3.0.a0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 603262 + timestamp: 1771378117851 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda + build_number: 5 + sha256: c723b6599fcd4c6c75dee728359ef418307280fa3e2ee376e14e85e5bbdda053 + md5: b38076eb5c8e40d0106beda6f95d7609 + depends: + - libblas 3.11.0 5_h4a7cf45_openblas + constrains: + - blas 2.305 openblas + - liblapacke 3.11.0 5*_openblas + - libcblas 3.11.0 5*_openblas + license: BSD-3-Clause + license_family: BSD + size: 18200 + timestamp: 1765818857876 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + sha256: 755c55ebab181d678c12e49cced893598f2bab22d582fbbf4d8b83c18be207eb + md5: c7c83eecbb72d88b940c249af56c8b17 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + constrains: + - xz 5.8.2.* + license: 0BSD + size: 113207 + timestamp: 1768752626120 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda + sha256: fe171ed5cf5959993d43ff72de7596e8ac2853e9021dec0344e583734f1e0843 + md5: 2c21e66f50753a083cbe6b80f38268fa + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: BSD-2-Clause + license_family: BSD + size: 92400 + timestamp: 1769482286018 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda + sha256: 199d79c237afb0d4780ccd2fbf829cea80743df60df4705202558675e07dd2c5 + md5: be43915efc66345cccb3c310b6ed0374 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libgfortran + - libgfortran5 >=14.3.0 + constrains: + - openblas >=0.3.30,<0.3.31.0a0 + license: BSD-3-Clause + license_family: BSD + size: 5927939 + timestamp: 1763114673331 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.21-h280c20c_3.conda + sha256: 64e5c80cbce4680a2d25179949739a6def695d72c40ca28f010711764e372d97 + md5: 7af961ef4aa2c1136e11dd43ded245ab + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + license: ISC + size: 277661 + timestamp: 1772479381288 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.52.0-hf4e2dac_0.conda + sha256: d716847b7deca293d2e49ed1c8ab9e4b9e04b9d780aea49a97c26925b28a7993 + md5: fd893f6a3002a635b5e50ceb9dd2c0f4 + depends: + - __glibc >=2.17,<3.0.a0 + - icu >=78.2,<79.0a0 + - libgcc >=14 + - libzlib >=1.3.1,<2.0a0 + license: blessing + size: 951405 + timestamp: 1772818874251 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda + sha256: 78668020064fdaa27e9ab65cd2997e2c837b564ab26ce3bf0e58a2ce1a525c6e + md5: 1b08cd684f34175e4514474793d44bcb + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc 15.2.0 he0feb66_18 + constrains: + - libstdcxx-ng ==15.2.0=*_18 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 5852330 + timestamp: 1771378262446 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda + sha256: 1a7539cfa7df00714e8943e18de0b06cceef6778e420a5ee3a2a145773758aee + md5: db409b7c1720428638e7c0d509d3e1b5 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: BSD-3-Clause + license_family: BSD + size: 40311 + timestamp: 1766271528534 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 + md5: edb0dca6bc32e4f4789199455a1dbeb8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + size: 60963 + timestamp: 1727963148474 +- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda + sha256: 7b1da4b5c40385791dbc3cc85ceea9fad5da680a27d5d3cb8bfaa185e304a89e + md5: 5b5203189eb668f042ac2b0826244964 + depends: + - mdurl >=0.1,<1 + - python >=3.10 + license: MIT + license_family: MIT + size: 64736 + timestamp: 1754951288511 +- conda: https://conda.modular.com/max-nightly/linux-64/max-26.3.0.dev2026031105-3.14release.conda + sha256: e6407c6222b5a0ccc4fd7270e55326f39f1026531bde13d3b12586861a2f4710 + md5: c3c4ea5254ba1a4962b1d7c7ba9e7461 + depends: + - numpy >=1.18 + - typing-extensions >=4.12.2 + - pyyaml >=6.0.1 + - rich >=13.0.1 + - python 3.14.* + - python-gil + - max-core ==26.3.0.dev2026031105 + license: LicenseRef-Modular-Proprietary + size: 4231736 + timestamp: 1773207424284 +- conda: https://conda.modular.com/max-nightly/linux-64/max-core-26.3.0.dev2026031105-release.conda + sha256: 5fb9f5db6c0a463d2b25185f7bcf9fce9efbd67dbcd31a88ad13b65f2371d540 + md5: 689a17beb15fc6b8b14d188a750c2d85 + depends: + - mojo-compiler ==0.26.3.0.dev2026031105 + license: LicenseRef-Modular-Proprietary + size: 137553590 + timestamp: 1773207447229 +- conda: https://conda.modular.com/max-nightly/noarch/mblack-26.3.0.dev2026031105-release.conda + noarch: python + sha256: dd93df3438e366c447af4e2ae2fa3811b83a2a68fa69ce8f9fbbc33daf06ad80 + md5: 33c8f9a54a3122c0a02073f8f4138bb1 + depends: + - python >=3.10 + - click >=8.0.0 + - mypy_extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9.0 + - platformdirs >=2 + - tomli >=1.1.0 + license: LicenseRef-Modular-Proprietary + size: 133842 + timestamp: 1773207196055 +- conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + sha256: 78c1bbe1723449c52b7a9df1af2ee5f005209f67e40b6e1d3c7619127c43b1c7 + md5: 592132998493b3ff25fd7479396e8351 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 14465 + timestamp: 1733255681319 +- conda: https://conda.modular.com/max-nightly/linux-64/mojo-0.26.3.0.dev2026031105-release.conda + sha256: ecf51beda01f003878e078c9898c9fccf90354aa321a6964e2e1bf51fcc0eeea + md5: 923cb2a3993db48806d77c5cbc46587c + depends: + - python >=3.10 + - mojo-compiler ==0.26.3.0.dev2026031105 + - mblack ==26.3.0.dev2026031105 + - jupyter_client >=8.6.2,<8.7 + license: LicenseRef-Modular-Proprietary + size: 89318428 + timestamp: 1773207351958 +- conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-0.26.3.0.dev2026031105-release.conda + sha256: 03eeb0e485c57def8067c0534658b185c984afbc27e77b57b55262dbc3fad8b8 + md5: 86ab7d0febcb6717e3c19018884cdbe4 + depends: + - mojo-python ==0.26.3.0.dev2026031105 + license: LicenseRef-Modular-Proprietary + size: 88636856 + timestamp: 1773207323233 +- conda: https://conda.modular.com/max-nightly/noarch/mojo-python-0.26.3.0.dev2026031105-release.conda + noarch: python + sha256: c6af0e06dc5fa3e1b0dbe3f9753c3da7653090e020720dcfba063f04911fc157 + md5: 647d60ca954e6f019a974171c1dfc830 + depends: + - python >=3.10 + license: LicenseRef-Modular-Proprietary + size: 22930 + timestamp: 1773207195039 +- conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda + sha256: 6ed158e4e5dd8f6a10ad9e525631e35cee8557718f83de7a4e3966b1f772c4b1 + md5: e9c622e0d00fa24a6292279af3ab6d06 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 11766 + timestamp: 1745776666688 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 + md5: 47e340acb35de30501a76c7c799c41d7 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: X11 AND BSD-3-Clause + size: 891641 + timestamp: 1738195959188 +- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py314h2b28147_1.conda + sha256: 1d8377c8001c15ed12c2713b723213474b435706ab9d34ede69795d64af9e94d + md5: 4ea6b620fdf24a1a0bc4f1c7134dfafb + depends: + - python + - libstdcxx >=14 + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - libcblas >=3.9.0,<4.0a0 + - python_abi 3.14.* *_cp314 + - libblas >=3.9.0,<4.0a0 + - liblapack >=3.9.0,<4.0a0 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + size: 8926994 + timestamp: 1770098474394 +- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda + sha256: 44c877f8af015332a5d12f5ff0fb20ca32f896526a7d0cdb30c769df1144fb5c + md5: f61eb8cd60ff9057122a3d338b99c00f + depends: + - __glibc >=2.17,<3.0.a0 + - ca-certificates + - libgcc >=14 + license: Apache-2.0 + license_family: Apache + size: 3164551 + timestamp: 1769555830639 +- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda + sha256: c1fc0f953048f743385d31c468b4a678b3ad20caffdeaa94bed85ba63049fd58 + md5: b76541e68fea4d511b1ac46a28dcd2c6 + depends: + - python >=3.8 + - python + license: Apache-2.0 + license_family: APACHE + size: 72010 + timestamp: 1769093650580 +- conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.4-pyhd8ed1ab_0.conda + sha256: 29ea20d0faf20374fcd61c25f6d32fb8e9a2c786a7f1473a0c3ead359470fbe1 + md5: 2908273ac396d2cd210a8127f5f1c0d6 + depends: + - python >=3.10 + license: MPL-2.0 + license_family: MOZILLA + size: 53739 + timestamp: 1769677743677 +- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.4-pyhcf101f3_0.conda + sha256: 0289f0a38337ee201d984f8f31f11f6ef076cfbbfd0ab9181d12d9d1d099bf46 + md5: 82c1787f2a65c0155ef9652466ee98d6 + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + size: 25646 + timestamp: 1773199142345 +- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda + sha256: 5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a + md5: 6b6ece66ebcae2d5f326c77ef2c5a066 + depends: + - python >=3.9 + license: BSD-2-Clause + license_family: BSD + size: 889287 + timestamp: 1750615908735 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda + build_number: 101 + sha256: cb0628c5f1732f889f53a877484da98f5a0e0f47326622671396fb4f2b0cd6bd + md5: c014ad06e60441661737121d3eae8a60 + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.7.3,<3.0a0 + - libffi >=3.5.2,<3.6.0a0 + - libgcc >=14 + - liblzma >=5.8.2,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.51.2,<4.0a0 + - libuuid >=2.41.3,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.5.5,<4.0a0 + - python_abi 3.14.* *_cp314 + - readline >=8.3,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - zstd >=1.5.7,<1.6.0a0 + license: Python-2.0 + size: 36702440 + timestamp: 1770675584356 + python_site_packages_path: lib/python3.14/site-packages +- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda + sha256: d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664 + md5: 5b8d21249ff20967101ffa321cab24e8 + depends: + - python >=3.9 + - six >=1.5 + - python + license: Apache-2.0 + license_family: APACHE + size: 233310 + timestamp: 1751104122689 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.3-h4df99d1_101.conda + sha256: 233aebd94c704ac112afefbb29cf4170b7bc606e22958906f2672081bc50638a + md5: 235765e4ea0d0301c75965985163b5a1 + depends: + - cpython 3.14.3.* + - python_abi * *_cp314 + license: Python-2.0 + size: 50062 + timestamp: 1770674497152 +- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda + build_number: 8 + sha256: ad6d2e9ac39751cc0529dd1566a26751a0bf2542adb0c232533d32e176e21db5 + md5: 0539938c55b6b1a59b560e843ad864a4 + constrains: + - python 3.14.* *_cp314 + license: BSD-3-Clause + license_family: BSD + size: 6989 + timestamp: 1752805904792 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py314h67df5f8_1.conda + sha256: b318fb070c7a1f89980ef124b80a0b5ccf3928143708a85e0053cde0169c699d + md5: 2035f68f96be30dc60a5dfd7452c7941 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 202391 + timestamp: 1770223462836 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hda471dd_2.conda + noarch: python + sha256: be66c1f85c3b48137200d62c12d918f4f8ad329423daef04fed292818efd3c28 + md5: 082985717303dab433c976986c674b35 + depends: + - python + - libgcc >=14 + - libstdcxx >=14 + - __glibc >=2.17,<3.0.a0 + - zeromq >=4.3.5,<4.4.0a0 + - _python_abi3_support 1.* + - cpython >=3.12 + license: BSD-3-Clause + license_family: BSD + size: 211567 + timestamp: 1771716961404 +- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda + sha256: 12ffde5a6f958e285aa22c191ca01bbd3d6e710aa852e00618fa6ddc59149002 + md5: d7d95fc8287ea7bf33e0e7116d2b95ec + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - ncurses >=6.5,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 345073 + timestamp: 1765813471974 +- conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.3.3-pyhcf101f3_0.conda + sha256: b06ce84d6a10c266811a7d3adbfa1c11f13393b91cc6f8a5b468277d90be9590 + md5: 7a6289c50631d620652f5045a63eb573 + depends: + - markdown-it-py >=2.2.0 + - pygments >=2.13.0,<3.0.0 + - python >=3.10 + - typing_extensions >=4.0.0,<5.0.0 + - python + license: MIT + license_family: MIT + size: 208472 + timestamp: 1771572730357 +- conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d + md5: 3339e3b65d58accf4ca4fb8748ab16b3 + depends: + - python >=3.9 + - python + license: MIT + license_family: MIT + size: 18455 + timestamp: 1753199211006 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda + sha256: cafeec44494f842ffeca27e9c8b0c27ed714f93ac77ddadc6aaf726b5554ebac + md5: cffd3bdd58090148f4cfcd831f4b26ab + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libzlib >=1.3.1,<2.0a0 + constrains: + - xorg-libx11 >=1.8.12,<2.0a0 + license: TCL + license_family: BSD + size: 3301196 + timestamp: 1769460227866 +- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + sha256: 62940c563de45790ba0f076b9f2085a842a65662268b02dd136a8e9b1eaf47a8 + md5: 72e780e9aa2d0a3295f59b1874e3768b + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + size: 21453 + timestamp: 1768146676791 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py314h5bd0f2a_0.conda + sha256: b8f9f9ae508d79c9c697eb01b6a8d2ed4bc1899370f44aa6497c8abbd15988ea + md5: e35f08043f54d26a1be93fdbf90d30c3 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + license: Apache-2.0 + license_family: Apache + size: 905436 + timestamp: 1765458949518 +- conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + sha256: f39a5620c6e8e9e98357507262a7869de2ae8cc07da8b7f84e517c9fd6c2b959 + md5: 019a7385be9af33791c989871317e1ed + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 110051 + timestamp: 1733367480074 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda + sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c + md5: edd329d7d3a4ab45dcf905899a7a6115 + depends: + - typing_extensions ==4.15.0 pyhcf101f3_0 + license: PSF-2.0 + license_family: PSF + size: 91383 + timestamp: 1756220668932 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda + sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731 + md5: 0caa1af407ecff61170c9437a808404d + depends: + - python >=3.10 + - python + license: PSF-2.0 + license_family: PSF + size: 51692 + timestamp: 1756220668932 +- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + sha256: 1d30098909076af33a35017eed6f2953af1c769e273a0626a04722ac4acaba3c + md5: ad659d0a2b3e47e38d829aa8cad2d610 + license: LicenseRef-Public-Domain + size: 119135 + timestamp: 1767016325805 +- conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda + sha256: 6d9ea2f731e284e9316d95fa61869fe7bbba33df7929f82693c121022810f4ad + md5: a77f85f77be52ff59391544bfe73390a + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + license: MIT + license_family: MIT + size: 85189 + timestamp: 1753484064210 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h41580af_10.conda + sha256: 325d370b28e2b9cc1f765c5b4cdb394c91a5d958fbd15da1a14607a28fee09f6 + md5: 755b096086851e1193f3b10347415d7c + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=14 + - krb5 >=1.22.2,<1.23.0a0 + - libsodium >=1.0.21,<1.0.22.0a0 + license: MPL-2.0 + license_family: MOZILLA + size: 311150 + timestamp: 1772476812121 +- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda + sha256: b4533f7d9efc976511a73ef7d4a2473406d7f4c750884be8e8620b0ce70f4dae + md5: 30cd29cb87d819caead4d55184c1d115 + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + size: 24194 + timestamp: 1764460141901 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda + sha256: 68f0206ca6e98fea941e5717cec780ed2873ffabc0e1ed34428c061e2c6268c7 + md5: 4a13eeac0b5c8e5b8ab496e6c4ddd829 + depends: + - __glibc >=2.17,<3.0.a0 + - libzlib >=1.3.1,<2.0a0 + license: BSD-3-Clause + license_family: BSD + size: 601375 + timestamp: 1764777111296 diff --git a/mojo/pixi.toml b/mojo/pixi.toml new file mode 100644 index 0000000000..37ff9cc53a --- /dev/null +++ b/mojo/pixi.toml @@ -0,0 +1,14 @@ +[workspace] +name = "darktable-mojo" +authors = ["maxchisto "] +channels = ["https://conda.modular.com/max-nightly", "conda-forge"] +platforms = ["linux-64"] +version = "0.1.0" + +[tasks] +build-lib = "mojo build -I . iop/sigmoid/lib.mojo --emit shared-lib -o libsigmoid_mojo.so" +bench = "mojo bench/sigmoid_bench.mojo" + +[dependencies] +mojo = ">=0.26.3.0.dev2026031105,<0.27" +max = ">=26.3.0.dev2026031105,<27" diff --git a/mojo/reproduce_fault/README.md b/mojo/reproduce_fault/README.md new file mode 100644 index 0000000000..3613ba0438 --- /dev/null +++ b/mojo/reproduce_fault/README.md @@ -0,0 +1,28 @@ +## The Problem +When a Mojo function is exported to C and launches a GPU kernel via `elementwise`, any variables "captured" by the kernel's closure are kept on the **Host (CPU) Stack**. + +- **Manual Loop (CPU):** Works fine. The Mojo function can iterate and access its own stack variables locally. +- **`elementwise` (CPU or GPU):** Fails via FFI. The utility seems to assume a Mojo-managed stack layout for its closure handling, which is violated when the entry point is a C function. +- **GPU Failure:** Specifically, the GPU attempts to reach back to the CPU's stack address, which is not mapped in the GPU's page tables, causing a `SIGSEGV`. + +## Evidence +- **Host Stack Address:** `0x7fff266bb2a4` +- **GPU Fault Address:** `0x7fff266ba000` +The GPU is attempting to read memory at the exact location of the C program's stack. + +## Files +- `lib_fault.mojo`: Mojo library capturing a `BigParams` struct. +- `main.c`: C program that `dlopen`s the Mojo library. +- `build.sh`: Script to compile and run the reproduction. + +## Running the reproduction +```bash +./build.sh +``` +Expected output: +```text +C: Host Stack Address around 0x7fff... +C: Calling Mojo launch_gpu_kernel()... +Mojo: Launching GPU kernel capturing a BigParams struct... +Memory access fault by GPU node-1 ... on address 0x7fff... +``` diff --git a/mojo/reproduce_fault/build.sh b/mojo/reproduce_fault/build.sh new file mode 100755 index 0000000000..a71ee51d48 --- /dev/null +++ b/mojo/reproduce_fault/build.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e + +echo "--- Building Mojo Library ---" +pixi run mojo build lib_fault.mojo --emit shared-lib -o lib_fault.so + +echo "--- Building C Driver ---" +clang main.c -Wl,-rpath=. -ldl -o reproduce_crash + +./reproduce_crash || echo "Exited with code $?" diff --git a/mojo/reproduce_fault/lib_fault.mojo b/mojo/reproduce_fault/lib_fault.mojo new file mode 100644 index 0000000000..8ee28de55a --- /dev/null +++ b/mojo/reproduce_fault/lib_fault.mojo @@ -0,0 +1,69 @@ +from std.gpu.host import DeviceContext +from std.algorithm.functional import elementwise +from std.utils import IndexList +from std.memory.unsafe_pointer import alloc, UnsafePointer + + +fn internal_gpu_launcher(dctx: DeviceContext, p_src: Int, p_dst: Int) raises: + @parameter + @always_inline + fn kernel[ + sw: Int, rank: Int, align: Int + ](indices: IndexList[rank]) capturing -> None: + UnsafePointer[Float32, MutAnyOrigin](unsafe_from_address=p_dst)[ + 0 + ] = UnsafePointer[Float32, ImmutAnyOrigin](unsafe_from_address=p_src)[0] + + elementwise[kernel, 1, target="cpu"](1, dctx) + dctx.synchronize() + + +@export +fn run_working_case(): + try: + print("Mojo: [WORKING] Launching via internal_gpu_launcher...") + var dctx = DeviceContext() + var dev_data = dctx.enqueue_create_buffer[DType.float32](1) + var dev_out = dctx.enqueue_create_buffer[DType.float32](1) + + var p_src = Int(dev_data.unsafe_ptr()) + var p_dst = Int(dev_out.unsafe_ptr()) + + internal_gpu_launcher(dctx, p_src, p_dst) + print("Mojo: [WORKING] Success.") + except e: + print("Mojo: [WORKING] Error:", String(e)) + + +@export +fn run_failing_case(): + try: + print( + "Mojo: [FAILING] Direct launch from @export (SIGSEGV/Fault" + " expected)..." + ) + var dctx = DeviceContext() + var dev_data = dctx.enqueue_create_buffer[DType.float32](1) + var dev_out = dctx.enqueue_create_buffer[DType.float32](1) + + var p_src = Int(dev_data.unsafe_ptr()) + var p_dst = Int(dev_out.unsafe_ptr()) + + @parameter + @always_inline + fn kernel[ + sw: Int, rank: Int, align: Int + ](indices: IndexList[rank]) capturing -> None: + UnsafePointer[Float32, MutAnyOrigin](unsafe_from_address=p_dst)[ + 0 + ] = UnsafePointer[Float32, ImmutAnyOrigin]( + unsafe_from_address=p_src + )[ + 0 + ] + + elementwise[kernel, 1, target="cpu"](1, dctx) + dctx.synchronize() + print("Mojo: [FAILING] Success (Unexpected!)") + except e: + print("Mojo: [FAILING] Error:", String(e)) diff --git a/mojo/reproduce_fault/lib_fault.so b/mojo/reproduce_fault/lib_fault.so new file mode 100755 index 0000000000000000000000000000000000000000..ffd6179a977e2fbe51cbabeae2ddfb829df4404b GIT binary patch literal 57088 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 +#include + +typedef void (*launch_fn)(); + +int main() { + void* handle = dlopen("./lib_fault.so", RTLD_NOW); + if (!handle) { + fprintf(stderr, "dlopen failed: %s\n", dlerror()); + return 1; + } + + launch_fn run_fail = (launch_fn)dlsym(handle, "run_failing_case"); + launch_fn run_work = (launch_fn)dlsym(handle, "run_working_case"); + + printf("--- Running WORKING Case (Indirection) ---\n"); + run_work(); + printf("C: WORKING case worked.\n\n"); + + printf("--- Running FAILING Case (Direct) ---\n"); + run_fail(); + printf("C: FAILING case worked (Unexpected).\n"); + + dlclose(handle); + return 0; +} diff --git a/mojo/reproduce_fault/reproduce_crash b/mojo/reproduce_fault/reproduce_crash new file mode 100755 index 0000000000000000000000000000000000000000..aab4c4f7fa32a70140f3c8489d58bcf811064e98 GIT binary patch literal 16192 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 Yb7|L;dSljd_TQp^Oeh}?8H8B%Z@In3VE_OC literal 0 HcmV?d00001 diff --git a/mojo/sigmoid_build_instructions.md b/mojo/sigmoid_build_instructions.md new file mode 100644 index 0000000000..72acae27c4 --- /dev/null +++ b/mojo/sigmoid_build_instructions.md @@ -0,0 +1,61 @@ +# Darktable Sigmoid Mojo Build Instructions + +This guide outlines how to compile the Mojo-based Sigmoid module and its C-bridge for integration with darktable. + +## 1. Compile the Mojo Module (`lib_sigmoid`) + +The Mojo code provides the core processing logic and kernels. + +```bash +cd ~/code/darktable/mojo +pixi run mojo build -I . iop/sigmoid/lib.mojo --emit shared-lib -o libsigmoid_mojo.so +``` + +The resulting `libsigmoid_mojo.so` contains the following exported symbols used by the C bridge: +- `sigmoid_mojo_init` +- `sigmoid_mojo_destroy` +- `sigmoid_mojo_rgb_ratio` +- `sigmoid_mojo_per_channel` + +## 2. Compile the C-Bridge Plugin (`sigmoid.c`) + +The C part (`src/iop/sigmoid.c`) handles the darktable user interface and parameter management. It loads the Mojo shared library at runtime. + +### Step-by-Step Build + +**A. Generate Introspection Code:** +Use darktable's introspection tool to generate boilerplate for the plugin parameters. +```bash +perl tools/introspection/parser.pl src/ src/iop/sigmoid.c /tmp/introspection_sigmoid.c +``` + +**B. Compile and Link:** +Compile the generated code and link it into a shared library. + +```bash +# Compilation +gcc -O3 -march=native -fPIC -fopenmp \ + $(pkg-config --cflags gtk+-3.0 glib-2.0 lcms2) \ + -Isrc -Isrc/iop -Ibuild/bin -include common/module_api.h -include iop/iop_api.h \ + -c /tmp/introspection_sigmoid.c -o /tmp/introspection_sigmoid.o + +# Linking +gcc -shared -fPIC -fopenmp /tmp/introspection_sigmoid.o \ + -L/usr/lib/darktable -ldarktable -lm -lgomp \ + -o libsigmoid.so +``` + +## 3. Deployment + +Both shared libraries must be placed in the darktable plugins directory so that darktable can find the plugin and the plugin can find the Mojo library. + +```bash +# Copy the Mojo library +sudo cp mojo/libsigmoid_mojo.so /usr/lib/darktable/plugins/ + +# Copy the C bridge plugin +sudo cp libsigmoid.so /usr/lib/darktable/plugins/ +``` + +> [!IMPORTANT] +> The C code in `src/iop/sigmoid.c` uses `dlopen("libsigmoid_mojo.so", RTLD_LAZY | RTLD_LOCAL)` in `init_global` to load the Mojo module. diff --git a/mojo/validate_sigmoid b/mojo/validate_sigmoid new file mode 100755 index 0000000000000000000000000000000000000000..413771c9134ccd5e4f3fc8ed0b776def001e6d1c GIT binary patch literal 16344 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 +#include +#include +#include + +// Mock the darktable module structure minimally +typedef struct dt_iop_module_so_t { + void *data; +} dt_iop_module_so_t; + +typedef void (*init_global_fn)(dt_iop_module_so_t *); +typedef void (*cleanup_global_fn)(dt_iop_module_so_t *); + +int main(int argc, char **argv) { + if (argc < 2) { + fprintf(stderr, "Usage: %s \n", argv[0]); + return 1; + } + + const char *plugin_path = argv[1]; + printf("--- Validating Plugin: %s ---\n", plugin_path); + + void *handle = dlopen(plugin_path, RTLD_NOW | RTLD_GLOBAL); + if (!handle) { + fprintf(stderr, "FAILED to dlopen %s: %s\n", plugin_path, dlerror()); + return 1; + } + printf("SUCCESS: Plugin loaded.\n"); + + init_global_fn init_global = (init_global_fn)dlsym(handle, "init_global"); + cleanup_global_fn cleanup_global = (cleanup_global_fn)dlsym(handle, "cleanup_global"); + + if (!init_global) { + fprintf(stderr, "FAILED: Could not find symbol 'init_global'\n"); + return 1; + } + + printf("SUCCESS: Found 'init_global'. Calling it now...\n"); + + dt_iop_module_so_t so = { .data = NULL }; + + // This will trigger the dlopen for libsigmoid_mojo.so + init_global(&so); + + if (so.data == NULL) { + printf("FAILED: init_global did not set so.data. Mojo library likely failed to load or dlsym failed.\n"); + } else { + printf("SUCCESS: init_global executed and so.data = %p\n", so.data); + + // We can't easily peek into the opaque struct without the header, + // but we can check if cleanup works. + if (cleanup_global) { + printf("Calling cleanup_global...\n"); + cleanup_global(&so); + printf("SUCCESS: cleanup_global executed.\n"); + } + } + + dlclose(handle); + printf("--- Validation Complete ---\n"); + return 0; +} diff --git a/src/iop/sigmoid.c b/src/iop/sigmoid.c index cbd96d7725..b9301431b7 100644 --- a/src/iop/sigmoid.c +++ b/src/iop/sigmoid.c @@ -27,9 +27,11 @@ #include "gui/gtk.h" #include "gui/presets.h" #include "iop/iop_api.h" +#include "common/opencl.h" #include #include +#include DT_MODULE_INTROSPECTION(3, dt_iop_sigmoid_params_t) @@ -180,10 +182,38 @@ typedef struct dt_iop_sigmoid_gui_data_t dt_gui_collapsible_section_t display_luminance_section, primaries_section; } dt_iop_sigmoid_gui_data_t; +typedef struct { + float white_target[4]; + float black_target[4]; + float paper_exposure[4]; + float film_fog[4]; + float film_power[4]; + float paper_power[4]; + float contrast_power[4]; + float skew_power[4]; + float hue_preservation[4]; + float pipe_to_base[16]; + float base_to_rendering[16]; + float rendering_to_pipe[16]; +} SigmoidMojoParams; + +typedef void (*mojo_init_fn)(uintptr_t *ctx, int use_gpu); +typedef void (*mojo_destroy_fn)(uintptr_t ctx); +typedef void (*mojo_rgb_ratio_fn)(uintptr_t ctx, float *in, float *out, int32_t width, int32_t height, void *params); +typedef void (*mojo_per_channel_fn)(uintptr_t ctx, float *in, float *out, int32_t width, int32_t height, void *params); + typedef struct dt_iop_sigmoid_global_data_t { int kernel_sigmoid_loglogistic_per_channel; int kernel_sigmoid_loglogistic_rgb_ratio; + + void *mojo_lib; + uintptr_t mojo_ctx_cpu; + uintptr_t mojo_ctx_gpu; + mojo_init_fn mojo_init; + mojo_destroy_fn mojo_destroy; + mojo_rgb_ratio_fn mojo_rgb_ratio; + mojo_per_channel_fn mojo_per_channel; } dt_iop_sigmoid_global_data_t; @@ -760,6 +790,40 @@ void process_loglogistic_per_channel(dt_develop_t *dev, } } +static SigmoidMojoParams _build_mojo_params(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece) +{ + const dt_iop_sigmoid_data_t *d = piece->data; + SigmoidMojoParams p = {0}; + + for(int i = 0; i < 4; i++) { + p.white_target[i] = d->white_target; + p.black_target[i] = d->black_target; + p.paper_exposure[i] = d->paper_exposure; + p.film_fog[i] = d->film_fog; + p.film_power[i] = d->film_power; + p.paper_power[i] = d->paper_power; + p.contrast_power[i] = d->film_power; + p.skew_power[i] = d->paper_power; + p.hue_preservation[i] = d->hue_preservation; + } + + const dt_iop_order_iccprofile_info_t *pipe_work_profile = dt_ioppr_get_pipe_work_profile_info(piece->pipe); + const dt_iop_order_iccprofile_info_t *base_profile = _get_base_profile(self->dev, pipe_work_profile, d->base_primaries); + dt_colormatrix_t pipe_to_base_transposed, base_to_rendering_transposed, rendering_to_pipe_transposed; + dt_colormatrix_t pipe_to_base, base_to_rendering, rendering_to_pipe; + + _calculate_adjusted_primaries(d, pipe_work_profile, base_profile, pipe_to_base_transposed, base_to_rendering_transposed, rendering_to_pipe_transposed); + transpose_3xSSE(pipe_to_base_transposed, pipe_to_base); + transpose_3xSSE(base_to_rendering_transposed, base_to_rendering); + transpose_3xSSE(rendering_to_pipe_transposed, rendering_to_pipe); + + memcpy(p.pipe_to_base, pipe_to_base, sizeof(pipe_to_base)); + memcpy(p.base_to_rendering, base_to_rendering, sizeof(base_to_rendering)); + memcpy(p.rendering_to_pipe, rendering_to_pipe, sizeof(rendering_to_pipe)); + + return p; +} + /** process, all real work is done here. */ void process(dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, @@ -768,8 +832,22 @@ void process(dt_iop_module_t *self, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out) { - // this is called for preview and full pipe separately, each with its own pixelpipe piece. const dt_iop_sigmoid_data_t *module_data = piece->data; + const dt_iop_sigmoid_global_data_t *gd = self->global_data; + + if(gd && gd->mojo_lib && gd->mojo_per_channel && gd->mojo_rgb_ratio) + { + SigmoidMojoParams p = _build_mojo_params(self, piece); + const int w = roi_in->width, h = roi_in->height; + int use_gpu = dt_opencl_is_enabled() ? 1 : 0; + uintptr_t ctx = use_gpu ? gd->mojo_ctx_gpu : gd->mojo_ctx_cpu; + + if(module_data->color_processing == DT_SIGMOID_METHOD_PER_CHANNEL) + gd->mojo_per_channel(ctx, (float *)ivoid, (float *)ovoid, w, h, &p); + else + gd->mojo_rgb_ratio(ctx, (float *)ivoid, (float *)ovoid, w, h, &p); + return; + } if(module_data->color_processing == DT_SIGMOID_METHOD_PER_CHANNEL) { @@ -781,87 +859,42 @@ void process(dt_iop_module_t *self, } } -#ifdef HAVE_OPENCL -int process_cl(dt_iop_module_t *self, - dt_dev_pixelpipe_iop_t *piece, - cl_mem dev_in, - cl_mem dev_out, - const dt_iop_roi_t *const roi_in, - const dt_iop_roi_t *const roi_out) -{ - const dt_iop_sigmoid_data_t *const d = piece->data; - const dt_iop_sigmoid_global_data_t *const gd = self->global_data; - cl_int err = CL_MEM_OBJECT_ALLOCATION_FAILURE; - const int devid = piece->pipe->devid; - const int width = roi_in->width; - const int height = roi_in->height; - const float white_target = d->white_target; - const float paper_exp = d->paper_exposure; - const float film_fog = d->film_fog; - const float contrast_power = d->film_power; - const float skew_power = d->paper_power; +void init_global(dt_iop_module_so_t *self) +{ + dt_iop_sigmoid_global_data_t *gd = calloc(1, sizeof(dt_iop_sigmoid_global_data_t)); + self->data = gd; - const dt_iop_order_iccprofile_info_t *pipe_work_profile = dt_ioppr_get_pipe_work_profile_info(piece->pipe); - const dt_iop_order_iccprofile_info_t *base_profile = _get_base_profile(self->dev, pipe_work_profile, d->base_primaries); - dt_colormatrix_t pipe_to_base_transposed, base_to_rendering_transposed, - rendering_to_pipe_transposed, pipe_to_base, base_to_rendering, rendering_to_pipe; - _calculate_adjusted_primaries(d, pipe_work_profile, base_profile, pipe_to_base_transposed, base_to_rendering_transposed, rendering_to_pipe_transposed); - transpose_3xSSE(pipe_to_base_transposed, pipe_to_base); - transpose_3xSSE(base_to_rendering_transposed, base_to_rendering); - transpose_3xSSE(rendering_to_pipe_transposed, rendering_to_pipe); - const cl_mem dev_pipe_to_base - = dt_opencl_copy_host_to_device_constant(devid, sizeof(pipe_to_base), pipe_to_base); - const cl_mem dev_base_to_rendering - = dt_opencl_copy_host_to_device_constant(devid, sizeof(base_to_rendering), base_to_rendering); - const cl_mem dev_rendering_to_pipe - = dt_opencl_copy_host_to_device_constant(devid, sizeof(rendering_to_pipe), rendering_to_pipe); - if(dev_pipe_to_base == NULL || dev_base_to_rendering == NULL || dev_rendering_to_pipe == NULL) - goto cleanup; - - if(d->color_processing == DT_SIGMOID_METHOD_PER_CHANNEL) + gd->mojo_lib = dlopen("libsigmoid_mojo.so", RTLD_LAZY | RTLD_LOCAL); + if(gd->mojo_lib) { - const float hue_preservation = d->hue_preservation; - err = dt_opencl_enqueue_kernel_2d_args( - devid, gd->kernel_sigmoid_loglogistic_per_channel, width, height, CLARG(dev_in), CLARG(dev_out), - CLARG(width), CLARG(height), CLARG(white_target), CLARG(paper_exp), CLARG(film_fog), CLARG(contrast_power), - CLARG(skew_power), CLARG(hue_preservation), CLARG(dev_pipe_to_base), CLARG(dev_base_to_rendering), CLARG(dev_rendering_to_pipe)); - } - else - { - const float black_target = d->black_target; + gd->mojo_init = (mojo_init_fn)dlsym(gd->mojo_lib, "sigmoid_mojo_init"); + gd->mojo_destroy = (mojo_destroy_fn)dlsym(gd->mojo_lib, "sigmoid_mojo_destroy"); + gd->mojo_rgb_ratio = (mojo_rgb_ratio_fn)dlsym(gd->mojo_lib, "sigmoid_mojo_rgb_ratio"); + gd->mojo_per_channel = (mojo_per_channel_fn)dlsym(gd->mojo_lib, "sigmoid_mojo_per_channel"); - err = dt_opencl_enqueue_kernel_2d_args(devid, gd->kernel_sigmoid_loglogistic_rgb_ratio, width, height, - CLARG(dev_in), CLARG(dev_out), CLARG(width), CLARG(height), - CLARG(white_target), CLARG(black_target), CLARG(paper_exp), - CLARG(film_fog), CLARG(contrast_power), CLARG(skew_power)); + if (gd->mojo_init && gd->mojo_destroy) + { + gd->mojo_init(&gd->mojo_ctx_cpu, 0); // CPU context + gd->mojo_init(&gd->mojo_ctx_gpu, 1); // GPU context + } } - -cleanup: - dt_opencl_release_mem_object(dev_pipe_to_base); - dt_opencl_release_mem_object(dev_base_to_rendering); - dt_opencl_release_mem_object(dev_rendering_to_pipe); - return err; -} -#endif // HAVE_OPENCL - -void init_global(dt_iop_module_so_t *self) -{ - const int program = 36; // sigmoid.cl, from programs.conf - dt_iop_sigmoid_global_data_t *gd = malloc(sizeof(dt_iop_sigmoid_global_data_t)); - - self->data = gd; - gd->kernel_sigmoid_loglogistic_per_channel = dt_opencl_create_kernel(program, "sigmoid_loglogistic_per_channel"); - gd->kernel_sigmoid_loglogistic_rgb_ratio = dt_opencl_create_kernel(program, "sigmoid_loglogistic_rgb_ratio"); } void cleanup_global(dt_iop_module_so_t *self) { - const dt_iop_sigmoid_global_data_t *gd = self->data; - dt_opencl_free_kernel(gd->kernel_sigmoid_loglogistic_per_channel); - dt_opencl_free_kernel(gd->kernel_sigmoid_loglogistic_rgb_ratio); - free(self->data); + dt_iop_sigmoid_global_data_t *gd = self->data; + if(gd) + { + if(gd->mojo_destroy) + { + if(gd->mojo_ctx_cpu) gd->mojo_destroy(gd->mojo_ctx_cpu); + if(gd->mojo_ctx_gpu) gd->mojo_destroy(gd->mojo_ctx_gpu); + } + if(gd->mojo_lib) dlclose(gd->mojo_lib); + free(gd); + } self->data = NULL; } diff --git a/src/iop/sigmoid_mojo.h b/src/iop/sigmoid_mojo.h new file mode 100644 index 0000000000..c91b7ee5ef --- /dev/null +++ b/src/iop/sigmoid_mojo.h @@ -0,0 +1,37 @@ +#pragma once +#include + +// Opaque context (hides Mojo DeviceContext internals) +typedef void* SigmoidMojoCtx; + +// Parameters passed per-frame (mirrors SigmoidMojoParams in lib.mojo) +typedef struct { + float white_target; + float black_target; + float paper_exposure; + float film_fog; + float film_power; + float paper_power; + float hue_preservation; + // 4x4 float matrices (row-major, 16 floats each) + float pipe_to_base[16]; + float base_to_rendering[16]; + float rendering_to_pipe[16]; +} SigmoidMojoParams; + +// Lifecycle +SigmoidMojoCtx sigmoid_mojo_init(int use_gpu); // 1=GPU, 0=CPU +void sigmoid_mojo_destroy(SigmoidMojoCtx ctx); + +// Processing (in/out are RGBA float32, stride = width * 4 * sizeof(float)) +void sigmoid_mojo_rgb_ratio( + SigmoidMojoCtx ctx, + const float* in, float* out, + int width, int height, + const SigmoidMojoParams* p); + +void sigmoid_mojo_per_channel( + SigmoidMojoCtx ctx, + const float* in, float* out, + int width, int height, + const SigmoidMojoParams* p); From 90ec7447c140e7d614088cbcb6cab27b4079568e Mon Sep 17 00:00:00 2001 From: maxchisto Date: Tue, 14 Apr 2026 17:14:21 -0700 Subject: [PATCH 2/7] detele unused bits --- src/external/OpenCL | 1 - src/external/lua-scripts | 1 - src/iop/sigmoid_mojo.h | 37 ------------------------------------- 3 files changed, 39 deletions(-) delete mode 160000 src/external/OpenCL delete mode 160000 src/external/lua-scripts delete mode 100644 src/iop/sigmoid_mojo.h diff --git a/src/external/OpenCL b/src/external/OpenCL deleted file mode 160000 index 8a97ebc88d..0000000000 --- a/src/external/OpenCL +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8a97ebc88daa3495d6f57ec10bb515224400186f diff --git a/src/external/lua-scripts b/src/external/lua-scripts deleted file mode 160000 index db505f1e0a..0000000000 --- a/src/external/lua-scripts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit db505f1e0a089b210f5afa653e53ebd32e5a82b0 diff --git a/src/iop/sigmoid_mojo.h b/src/iop/sigmoid_mojo.h deleted file mode 100644 index c91b7ee5ef..0000000000 --- a/src/iop/sigmoid_mojo.h +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once -#include - -// Opaque context (hides Mojo DeviceContext internals) -typedef void* SigmoidMojoCtx; - -// Parameters passed per-frame (mirrors SigmoidMojoParams in lib.mojo) -typedef struct { - float white_target; - float black_target; - float paper_exposure; - float film_fog; - float film_power; - float paper_power; - float hue_preservation; - // 4x4 float matrices (row-major, 16 floats each) - float pipe_to_base[16]; - float base_to_rendering[16]; - float rendering_to_pipe[16]; -} SigmoidMojoParams; - -// Lifecycle -SigmoidMojoCtx sigmoid_mojo_init(int use_gpu); // 1=GPU, 0=CPU -void sigmoid_mojo_destroy(SigmoidMojoCtx ctx); - -// Processing (in/out are RGBA float32, stride = width * 4 * sizeof(float)) -void sigmoid_mojo_rgb_ratio( - SigmoidMojoCtx ctx, - const float* in, float* out, - int width, int height, - const SigmoidMojoParams* p); - -void sigmoid_mojo_per_channel( - SigmoidMojoCtx ctx, - const float* in, float* out, - int width, int height, - const SigmoidMojoParams* p); From 920af7a0c5786a01c74a11b7d29dcebe64aaaf92 Mon Sep 17 00:00:00 2001 From: maxchisto Date: Tue, 14 Apr 2026 17:17:18 -0700 Subject: [PATCH 3/7] delete more unused bits --- mojo/reproduce_fault/README.md | 28 ----------- mojo/reproduce_fault/build.sh | 10 ---- mojo/reproduce_fault/lib_fault.mojo | 69 --------------------------- mojo/reproduce_fault/lib_fault.so | Bin 57088 -> 0 bytes mojo/reproduce_fault/main.c | 26 ---------- mojo/reproduce_fault/reproduce_crash | Bin 16192 -> 0 bytes 6 files changed, 133 deletions(-) delete mode 100644 mojo/reproduce_fault/README.md delete mode 100755 mojo/reproduce_fault/build.sh delete mode 100644 mojo/reproduce_fault/lib_fault.mojo delete mode 100755 mojo/reproduce_fault/lib_fault.so delete mode 100644 mojo/reproduce_fault/main.c delete mode 100755 mojo/reproduce_fault/reproduce_crash diff --git a/mojo/reproduce_fault/README.md b/mojo/reproduce_fault/README.md deleted file mode 100644 index 3613ba0438..0000000000 --- a/mojo/reproduce_fault/README.md +++ /dev/null @@ -1,28 +0,0 @@ -## The Problem -When a Mojo function is exported to C and launches a GPU kernel via `elementwise`, any variables "captured" by the kernel's closure are kept on the **Host (CPU) Stack**. - -- **Manual Loop (CPU):** Works fine. The Mojo function can iterate and access its own stack variables locally. -- **`elementwise` (CPU or GPU):** Fails via FFI. The utility seems to assume a Mojo-managed stack layout for its closure handling, which is violated when the entry point is a C function. -- **GPU Failure:** Specifically, the GPU attempts to reach back to the CPU's stack address, which is not mapped in the GPU's page tables, causing a `SIGSEGV`. - -## Evidence -- **Host Stack Address:** `0x7fff266bb2a4` -- **GPU Fault Address:** `0x7fff266ba000` -The GPU is attempting to read memory at the exact location of the C program's stack. - -## Files -- `lib_fault.mojo`: Mojo library capturing a `BigParams` struct. -- `main.c`: C program that `dlopen`s the Mojo library. -- `build.sh`: Script to compile and run the reproduction. - -## Running the reproduction -```bash -./build.sh -``` -Expected output: -```text -C: Host Stack Address around 0x7fff... -C: Calling Mojo launch_gpu_kernel()... -Mojo: Launching GPU kernel capturing a BigParams struct... -Memory access fault by GPU node-1 ... on address 0x7fff... -``` diff --git a/mojo/reproduce_fault/build.sh b/mojo/reproduce_fault/build.sh deleted file mode 100755 index a71ee51d48..0000000000 --- a/mojo/reproduce_fault/build.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -e - -echo "--- Building Mojo Library ---" -pixi run mojo build lib_fault.mojo --emit shared-lib -o lib_fault.so - -echo "--- Building C Driver ---" -clang main.c -Wl,-rpath=. -ldl -o reproduce_crash - -./reproduce_crash || echo "Exited with code $?" diff --git a/mojo/reproduce_fault/lib_fault.mojo b/mojo/reproduce_fault/lib_fault.mojo deleted file mode 100644 index 8ee28de55a..0000000000 --- a/mojo/reproduce_fault/lib_fault.mojo +++ /dev/null @@ -1,69 +0,0 @@ -from std.gpu.host import DeviceContext -from std.algorithm.functional import elementwise -from std.utils import IndexList -from std.memory.unsafe_pointer import alloc, UnsafePointer - - -fn internal_gpu_launcher(dctx: DeviceContext, p_src: Int, p_dst: Int) raises: - @parameter - @always_inline - fn kernel[ - sw: Int, rank: Int, align: Int - ](indices: IndexList[rank]) capturing -> None: - UnsafePointer[Float32, MutAnyOrigin](unsafe_from_address=p_dst)[ - 0 - ] = UnsafePointer[Float32, ImmutAnyOrigin](unsafe_from_address=p_src)[0] - - elementwise[kernel, 1, target="cpu"](1, dctx) - dctx.synchronize() - - -@export -fn run_working_case(): - try: - print("Mojo: [WORKING] Launching via internal_gpu_launcher...") - var dctx = DeviceContext() - var dev_data = dctx.enqueue_create_buffer[DType.float32](1) - var dev_out = dctx.enqueue_create_buffer[DType.float32](1) - - var p_src = Int(dev_data.unsafe_ptr()) - var p_dst = Int(dev_out.unsafe_ptr()) - - internal_gpu_launcher(dctx, p_src, p_dst) - print("Mojo: [WORKING] Success.") - except e: - print("Mojo: [WORKING] Error:", String(e)) - - -@export -fn run_failing_case(): - try: - print( - "Mojo: [FAILING] Direct launch from @export (SIGSEGV/Fault" - " expected)..." - ) - var dctx = DeviceContext() - var dev_data = dctx.enqueue_create_buffer[DType.float32](1) - var dev_out = dctx.enqueue_create_buffer[DType.float32](1) - - var p_src = Int(dev_data.unsafe_ptr()) - var p_dst = Int(dev_out.unsafe_ptr()) - - @parameter - @always_inline - fn kernel[ - sw: Int, rank: Int, align: Int - ](indices: IndexList[rank]) capturing -> None: - UnsafePointer[Float32, MutAnyOrigin](unsafe_from_address=p_dst)[ - 0 - ] = UnsafePointer[Float32, ImmutAnyOrigin]( - unsafe_from_address=p_src - )[ - 0 - ] - - elementwise[kernel, 1, target="cpu"](1, dctx) - dctx.synchronize() - print("Mojo: [FAILING] Success (Unexpected!)") - except e: - print("Mojo: [FAILING] Error:", String(e)) diff --git a/mojo/reproduce_fault/lib_fault.so b/mojo/reproduce_fault/lib_fault.so deleted file mode 100755 index ffd6179a977e2fbe51cbabeae2ddfb829df4404b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57088 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 -#include - -typedef void (*launch_fn)(); - -int main() { - void* handle = dlopen("./lib_fault.so", RTLD_NOW); - if (!handle) { - fprintf(stderr, "dlopen failed: %s\n", dlerror()); - return 1; - } - - launch_fn run_fail = (launch_fn)dlsym(handle, "run_failing_case"); - launch_fn run_work = (launch_fn)dlsym(handle, "run_working_case"); - - printf("--- Running WORKING Case (Indirection) ---\n"); - run_work(); - printf("C: WORKING case worked.\n\n"); - - printf("--- Running FAILING Case (Direct) ---\n"); - run_fail(); - printf("C: FAILING case worked (Unexpected).\n"); - - dlclose(handle); - return 0; -} diff --git a/mojo/reproduce_fault/reproduce_crash b/mojo/reproduce_fault/reproduce_crash deleted file mode 100755 index aab4c4f7fa32a70140f3c8489d58bcf811064e98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16192 zcmeHOZ)_Y#6`wmdiAj^#NgI;pPqPV0lmvNWJBdkJ(wyTzSqCREj?)&2us!?M@rm=D zd$&&Qv=NpMjR-~&-rP>P^(8c0LMhg2XDK@kxp=&V37qM#O9AHO&I z-g>>ctE%z=A$F|WH}CiU%-grK>zUn|&$V^7$73-irAj@Zh?}VOkOT`RKgJc1gxal^ z;CQcEtLB5hLt~yi;Sor^Qd>2bRx?g8*|{ta(>1IoR3aowc9lxk0#71T@p+KlJQ6V< zreBYHc0xt&w`X{A6{3@*fFd+#N4dFJr^V{x-nsM(+};FJu_Ko3uCm=#wi7zd?Fp59 zQcmdC#rX`=jgV0hO1e~t(r;`%ako=Lqsl++aC_(3E=5u zSLA}OSCcx>*|ERHZZsRsU4DJXPGu^)qvwzf$Igj#!FBRIhgveZtkaY1%}@*{26I`C z!S+GnAN8iV?om{yS{3pVSBJq#e;rR`sm%fT_A6F^xROI<1_wRX5 z(j-4$1n**ecS4&f!G*uL&%^1SqG+T{25^1^Y0=dH&W~n|Ukl*WN2Od3;CBiLdLw`@ z3g9Z?G31;2ij?YvS0h}W1%%Wl=%^Io`u~CElv9}-VP!>LKlKSw+b38yY-{yW6ekZkI_=D$fi z4aKG=z*9U8f9@E6^)uG^@2xX`nC|LnYnW{KnRRY2y`?BEuY&rU{btR&&%*=(pW8bM z#5y-GPh`(q?pmD6A5HI6mX>Z%(EYRemqR@4_h|cFjYPK2SmV>yrMIfAOKrd|#n#!qSHP8)KZ0Yi1t)uD-j7g? z9lu;TKJqv95OizSjlq+4h3i%Sa@#w^BK!xIDD@)cyEryeDp})g)7F{O(`vW@Vb9<# zf^}8_yk6W-(zBQ4NMZT6FG9#My#S%_#qlvUNmvbjR76fQbdpn{?^DD_CCWgQfhYq} z2BHi^8Hh3vWgyBxl!5<`49NODS+6Jafx~?IYnkSl`fKKR!Qf)XCwOt?JF(>xwjiL6J3e7g#Q9=6>Lbm8|t!$^3GrLfA|d zc^x2q@T4-~5q};>>-VUv@Q9k^h6OKjU=sIr){`}e(*D0n-uXbRRq?G-pWj8c#}`@6 zOWrZf)BHDB{x7fQGJ;tUIv_W@&!!&jYi1K1~I>lQXcP6e=UUtbX{Ut0W9mw4OX}d zw4DAr;BmD`O@`uK&vRgwfWM&q)T$9Wkx(h;=Vj=`)N&QR?$@+!je5

*RHLPE;nTY(#59H2cKU#aR70T9(T;I(R{pJ$PF0$&zitmOG5c%E=!0<@d` zg#FtU^dGH&KMC9j_?7BcfG>@&RMPJSe}-`Eh7luv+^Gw|YtetKglKy7Vc^TqPh@}1 zW)^>+^`*aw)g{)y!0WR0yCev&Xk4^r>92rOoMAt&12<;X{Mx$}{M6zByTR9*t$Y;t zvN)dJq5G==IEOf^OtqtZdAGsLVafzJ0-aqTZ@YswR_JG)0#s8u z`$Q(!o6OiLH9;zmm3_)IC!^b)|c0yW%_A5na?LjZ71vIM^%45Iq2A_;laUC zm;^W*n(iD`+6iFxQEW~&MUmNddw27pHoNU`tBoc4t)DvFe5j)ZFrIaGo5fPAwOiQ- zI*;sc?zE4zw;yfmv3r{LcedHGRUjc71h6UKwyg(qgzvRqz)225de!0$-_g)*dc6DTU18VD}aZ+=AXBq4z}iF7>Hk zLxbdoA}_mrf%ja@H4JX3@FhA*x+uIGV~#+X*pcBTdqLg2M+c;q&AECn{8dlLS?G>5Sv%R8AQDRONnjN8OV0u>rNioJ|4h3@7CX;?;8v6pe41&qdMVlU%Wp)x*&iZ0>! zyMWSIQ0!&=CsfAG62IsPJq~*sTM94ZOQH2%v-j;Folrv*nTG9u8nQpn_Cmw<;rM?6dyJm+JqY5D zlV#s!xIN*8(s-yQU@!C2NvwROB6=P-%L{%B0_wXmPm}So?7x+Lwmhx#{YgK16SlE{ zz3h*>xE&x$y+{0`v@4Xx*Fk%k-xk^4@-4lJ*a?lpIA|~9-+FFX;uJSx=kqWoOwK=% z@FWSg59?D~!Lpd!51*&lhjFnFQtA6aze8*|&4JPX0lGCM9(jJ#{7_;K+CM@QJCxRt Yb7|L;dSljd_TQp^Oeh}?8H8B%Z@In3VE_OC From c69e3e6e8a5816944fd631eec5e8e759bbd8b228 Mon Sep 17 00:00:00 2001 From: maxchisto Date: Tue, 14 Apr 2026 17:19:16 -0700 Subject: [PATCH 4/7] and even more --- mojo/bench/sigmoid_bench.mojo | 148 ---------------------------------- mojo/validate_sigmoid | Bin 16344 -> 0 bytes mojo/validate_sigmoid.c | 62 -------------- 3 files changed, 210 deletions(-) delete mode 100644 mojo/bench/sigmoid_bench.mojo delete mode 100755 mojo/validate_sigmoid delete mode 100644 mojo/validate_sigmoid.c diff --git a/mojo/bench/sigmoid_bench.mojo b/mojo/bench/sigmoid_bench.mojo deleted file mode 100644 index ced674b102..0000000000 --- a/mojo/bench/sigmoid_bench.mojo +++ /dev/null @@ -1,148 +0,0 @@ -from std.gpu.host import DeviceContext -from layout import Layout, LayoutTensor -from std.utils import Index, IndexList -from std.math import sqrt, pow, max, min -from std.benchmark import Bench, BenchConfig, Bencher, BenchId -from std.algorithm.functional import elementwise -from iop.sigmoid.kernels import apply_sigmoid_rgb_ratio, apply_sigmoid_per_channel - -# Configuration -comptime WIDTH = 6016 -comptime HEIGHT = 4016 -comptime CHANNELS = 4 -comptime IMAGE_LAYOUT = Layout.row_major(HEIGHT, WIDTH, CHANNELS) -comptime DTYPE = DType.float32 - -fn run_sigmoid_rgb_ratio( - ctx: DeviceContext, - output: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], - input: LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin], - white_target: Float32, - black_target: Float32, - paper_exp: Float32, - film_fog: Float32, - film_power: Float32, - paper_power: Float32, - num_pixels: Int, -) raises: - @parameter - @always_inline - fn rgb_ratio_closure[ - width: Int, rank: Int, alignment: Int - ](indices: IndexList[rank]) capturing -> None: - var px_idx = indices[0] - var y = px_idx // WIDTH - var x = px_idx % WIDTH - var pix = input.load[width=4](Index(y, x, 0)) - var res = apply_sigmoid_rgb_ratio( - pix[0], pix[1], pix[2], pix[3], - white_target, black_target, paper_exp, film_fog, film_power, paper_power - ) - output.store[width=4](Index(y, x, 0), res) - - elementwise[rgb_ratio_closure, 1, target="gpu"](num_pixels, ctx) - - -fn run_sigmoid_per_channel( - ctx: DeviceContext, - output: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], - input: LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin], - white_target: Float32, - paper_exp: Float32, - film_fog: Float32, - contrast_power: Float32, - skew_power: Float32, - hue_preservation: Float32, - pipe_to_base: SIMD[DType.float32, 16], - base_to_rendering: SIMD[DType.float32, 16], - rendering_to_pipe: SIMD[DType.float32, 16], - num_pixels: Int, -) raises: - @parameter - @always_inline - fn per_channel_closure[ - width: Int, rank: Int, alignment: Int - ](indices: IndexList[rank]) capturing -> None: - var px_idx = indices[0] - var y = px_idx // WIDTH - var x = px_idx % WIDTH - var pix = input.load[width=4](Index(y, x, 0)) - var res = apply_sigmoid_per_channel( - pix[0], pix[1], pix[2], pix[3], - white_target, paper_exp, film_fog, contrast_power, skew_power, hue_preservation, - pipe_to_base, base_to_rendering, rendering_to_pipe - ) - output.store[width=4](Index(y, x, 0), res) - - elementwise[per_channel_closure, 1, target="gpu"](num_pixels, ctx) - - -fn main() raises: - print("Mojo Sigmoid Benchmark - New Structure") - var total_floats = HEIGHT * WIDTH * CHANNELS - var ctx = DeviceContext() - print("Using GPU API:", ctx.api()) - - var input_buffer_host = ctx.enqueue_create_host_buffer[DTYPE](total_floats) - var input_buffer_device = ctx.enqueue_create_buffer[DTYPE](total_floats) - var output_buffer_device = ctx.enqueue_create_buffer[DTYPE](total_floats) - - var input_image_host = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( - input_buffer_host - ) - var input_image_device = LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin]( - input_buffer_device - ) - var output_image_device = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( - output_buffer_device - ) - - # Initialize input data (simplified ramp for testing) - for y in range(HEIGHT): - for x in range(WIDTH): - var r = Float32(x) / WIDTH - var g = Float32(y) / HEIGHT - var b = Float32(0.5) - input_image_host.store[width=4]( - Index(y, x, 0), SIMD[DType.float32, 4](r, g, b, 1.0) - ) - - ctx.enqueue_copy(input_buffer_device, input_buffer_host) - - var white_target = Float32(1.0) - var black_target = Float32(0.000152) - var paper_exp = Float32(0.5) - var film_fog = Float32(0.0) - var contrast_power = Float32(2.5) - var skew_power = Float32(1.0) - var hue_preservation = Float32(1.0) - - var identity = SIMD[DType.float32, 16](0) - identity[0] = 1; identity[5] = 1; identity[10] = 1; identity[15] = 1 - - # Warmup - run_sigmoid_rgb_ratio(ctx, output_image_device, input_image_device, white_target, black_target, paper_exp, film_fog, contrast_power, skew_power, WIDTH * HEIGHT) - ctx.synchronize() - - # Benchmarking - var bench = Bench(BenchConfig(max_iters=100, num_warmup_iters=10)) - - @parameter - fn bench_rgb(mut b: Bencher) raises: - @parameter - fn run(ctx: DeviceContext) raises: - run_sigmoid_rgb_ratio(ctx, output_image_device, input_image_device, white_target, black_target, paper_exp, film_fog, contrast_power, skew_power, WIDTH * HEIGHT) - b.iter_custom[run](ctx) - ctx.synchronize() - - @parameter - fn bench_per(mut b: Bencher) raises: - @parameter - fn run(ctx: DeviceContext) raises: - run_sigmoid_per_channel(ctx, output_image_device, input_image_device, white_target, paper_exp, film_fog, contrast_power, skew_power, hue_preservation, identity, identity, identity, WIDTH * HEIGHT) - b.iter_custom[run](ctx) - ctx.synchronize() - - bench.bench_function[bench_rgb](BenchId("Mojo-Sigmoid-RGB-Ratio-New")) - bench.bench_function[bench_per](BenchId("Mojo-Sigmoid-Per-Channel-New")) - print(bench) diff --git a/mojo/validate_sigmoid b/mojo/validate_sigmoid deleted file mode 100755 index 413771c9134ccd5e4f3fc8ed0b776def001e6d1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16344 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 -#include -#include -#include - -// Mock the darktable module structure minimally -typedef struct dt_iop_module_so_t { - void *data; -} dt_iop_module_so_t; - -typedef void (*init_global_fn)(dt_iop_module_so_t *); -typedef void (*cleanup_global_fn)(dt_iop_module_so_t *); - -int main(int argc, char **argv) { - if (argc < 2) { - fprintf(stderr, "Usage: %s \n", argv[0]); - return 1; - } - - const char *plugin_path = argv[1]; - printf("--- Validating Plugin: %s ---\n", plugin_path); - - void *handle = dlopen(plugin_path, RTLD_NOW | RTLD_GLOBAL); - if (!handle) { - fprintf(stderr, "FAILED to dlopen %s: %s\n", plugin_path, dlerror()); - return 1; - } - printf("SUCCESS: Plugin loaded.\n"); - - init_global_fn init_global = (init_global_fn)dlsym(handle, "init_global"); - cleanup_global_fn cleanup_global = (cleanup_global_fn)dlsym(handle, "cleanup_global"); - - if (!init_global) { - fprintf(stderr, "FAILED: Could not find symbol 'init_global'\n"); - return 1; - } - - printf("SUCCESS: Found 'init_global'. Calling it now...\n"); - - dt_iop_module_so_t so = { .data = NULL }; - - // This will trigger the dlopen for libsigmoid_mojo.so - init_global(&so); - - if (so.data == NULL) { - printf("FAILED: init_global did not set so.data. Mojo library likely failed to load or dlsym failed.\n"); - } else { - printf("SUCCESS: init_global executed and so.data = %p\n", so.data); - - // We can't easily peek into the opaque struct without the header, - // but we can check if cleanup works. - if (cleanup_global) { - printf("Calling cleanup_global...\n"); - cleanup_global(&so); - printf("SUCCESS: cleanup_global executed.\n"); - } - } - - dlclose(handle); - printf("--- Validation Complete ---\n"); - return 0; -} From d5355f7272f133e584046064d584d902ed709e57 Mon Sep 17 00:00:00 2001 From: maxchisto Date: Tue, 14 Apr 2026 17:31:57 -0700 Subject: [PATCH 5/7] docs --- mojo/Makefile | 3 --- mojo/darktable-mojo.sh | 7 ------ mojo/sigmoid_build_instructions.md | 36 ++++++------------------------ 3 files changed, 7 insertions(+), 39 deletions(-) delete mode 100755 mojo/darktable-mojo.sh diff --git a/mojo/Makefile b/mojo/Makefile index 3db8bd8b44..c8648a298b 100644 --- a/mojo/Makefile +++ b/mojo/Makefile @@ -13,8 +13,5 @@ libsigmoid_mojo.so: iop/sigmoid/lib.mojo iop/sigmoid/kernels.mojo install: libsigmoid_mojo.so sudo cp libsigmoid_mojo.so $(PLUGIN_DIR)/ -bench: - $(MOJO) bench/sigmoid_bench.mojo - clean: rm -f libsigmoid_mojo.so diff --git a/mojo/darktable-mojo.sh b/mojo/darktable-mojo.sh deleted file mode 100755 index 0e10c48be9..0000000000 --- a/mojo/darktable-mojo.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -MOJO_LIB_DIR="/home/mc/code/darktable/mojo/.pixi/envs/default/lib" -# We need both the Mojo libs and the directory where libsigmoid_mojo.so lives (usually /usr/lib) -export LD_LIBRARY_PATH="$MOJO_LIB_DIR:/usr/lib:$LD_LIBRARY_PATH" - -echo "--- Launching Darktable with Mojo GPU Support ---" -/usr/bin/darktable -d opencl "$@" diff --git a/mojo/sigmoid_build_instructions.md b/mojo/sigmoid_build_instructions.md index 72acae27c4..dc107c6639 100644 --- a/mojo/sigmoid_build_instructions.md +++ b/mojo/sigmoid_build_instructions.md @@ -1,14 +1,12 @@ -# Darktable Sigmoid Mojo Build Instructions +# Build Instructions -This guide outlines how to compile the Mojo-based Sigmoid module and its C-bridge for integration with darktable. - -## 1. Compile the Mojo Module (`lib_sigmoid`) +## 1. Compile the Mojo Module (`libsigmoid_mojo.so`) The Mojo code provides the core processing logic and kernels. ```bash cd ~/code/darktable/mojo -pixi run mojo build -I . iop/sigmoid/lib.mojo --emit shared-lib -o libsigmoid_mojo.so +make build ``` The resulting `libsigmoid_mojo.so` contains the following exported symbols used by the C bridge: @@ -17,45 +15,25 @@ The resulting `libsigmoid_mojo.so` contains the following exported symbols used - `sigmoid_mojo_rgb_ratio` - `sigmoid_mojo_per_channel` -## 2. Compile the C-Bridge Plugin (`sigmoid.c`) +## 2. Compile the C-Bridge Plugin (`libsigmoid.so`) The C part (`src/iop/sigmoid.c`) handles the darktable user interface and parameter management. It loads the Mojo shared library at runtime. -### Step-by-Step Build - -**A. Generate Introspection Code:** -Use darktable's introspection tool to generate boilerplate for the plugin parameters. ```bash -perl tools/introspection/parser.pl src/ src/iop/sigmoid.c /tmp/introspection_sigmoid.c +./build_sigmoid_iop.sh ``` -**B. Compile and Link:** -Compile the generated code and link it into a shared library. - -```bash -# Compilation -gcc -O3 -march=native -fPIC -fopenmp \ - $(pkg-config --cflags gtk+-3.0 glib-2.0 lcms2) \ - -Isrc -Isrc/iop -Ibuild/bin -include common/module_api.h -include iop/iop_api.h \ - -c /tmp/introspection_sigmoid.c -o /tmp/introspection_sigmoid.o - -# Linking -gcc -shared -fPIC -fopenmp /tmp/introspection_sigmoid.o \ - -L/usr/lib/darktable -ldarktable -lm -lgomp \ - -o libsigmoid.so -``` -## 3. Deployment +## 3. Installation Both shared libraries must be placed in the darktable plugins directory so that darktable can find the plugin and the plugin can find the Mojo library. ```bash # Copy the Mojo library -sudo cp mojo/libsigmoid_mojo.so /usr/lib/darktable/plugins/ +sudo cp libsigmoid_mojo.so /usr/lib/darktable/plugins/ # Copy the C bridge plugin sudo cp libsigmoid.so /usr/lib/darktable/plugins/ ``` -> [!IMPORTANT] > The C code in `src/iop/sigmoid.c` uses `dlopen("libsigmoid_mojo.so", RTLD_LAZY | RTLD_LOCAL)` in `init_global` to load the Mojo module. From ecc268cb6cfb06dc6ae0e95f0fd06b8b31ae925f Mon Sep 17 00:00:00 2001 From: maxchisto Date: Thu, 16 Apr 2026 15:55:48 -0700 Subject: [PATCH 6/7] restore submodules --- src/external/OpenCL/.gitignore | 0 src/external/lua-scripts/.gitignore | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/external/OpenCL/.gitignore create mode 100644 src/external/lua-scripts/.gitignore diff --git a/src/external/OpenCL/.gitignore b/src/external/OpenCL/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/external/lua-scripts/.gitignore b/src/external/lua-scripts/.gitignore new file mode 100644 index 0000000000..e69de29bb2 From 10cd125ee0f3d47b292d2ff92ac721d41f737186 Mon Sep 17 00:00:00 2001 From: maxchisto Date: Sun, 26 Jul 2026 17:10:17 -0700 Subject: [PATCH 7/7] port to Mojo 1.0-b3 --- benchmark/README.md | 52 +- benchmark/blurs/Makefile | 18 + benchmark/blurs/README.md | 30 + benchmark/blurs/benchmark_blurs | Bin 0 -> 17960 bytes benchmark/blurs/benchmark_blurs.c | 180 +++ benchmark/blurs/benchmark_results.md | 59 + benchmark/blurs/check_cl.c | 14 + benchmark/pixi.lock | 899 ------------ benchmark/pixi.toml | 12 - benchmark/{ => sigmoid}/Makefile | 0 benchmark/sigmoid/README.md | 58 + benchmark/{ => sigmoid}/benchmark_sigmoid.c | 71 +- benchmark/sigmoid/opencl_input.jpg | Bin 0 -> 712749 bytes .../sigmoid/opencl_output_per_channel.jpg | Bin 0 -> 612977 bytes benchmark/sigmoid/opencl_output_rgb_ratio.jpg | Bin 0 -> 598068 bytes benchmark/{ => sigmoid}/parity_check.c | 0 benchmark/sigmoid/sigmoid_benchmark_gpu.mojo | 246 ++++ benchmark/{ => sigmoid}/stb_image_write.h | 0 benchmark/{ => sigmoid}/validate_parity.py | 0 benchmark/sigmoid_benchmark_gpu.mojo | 601 -------- mojo/.gitattributes | 2 + mojo/.gitignore | 3 + mojo/iop/blurs/__init__.mojo | 1 + mojo/iop/blurs/kernels.mojo | 59 + mojo/iop/blurs/lib.mojo | 190 +++ mojo/iop/sigmoid/kernels.mojo | 203 +-- mojo/iop/sigmoid/lib.mojo | 436 +++--- mojo/pixi.lock | 1281 +++++++++-------- mojo/pixi.toml | 8 +- 29 files changed, 1952 insertions(+), 2471 deletions(-) create mode 100644 benchmark/blurs/Makefile create mode 100644 benchmark/blurs/README.md create mode 100755 benchmark/blurs/benchmark_blurs create mode 100644 benchmark/blurs/benchmark_blurs.c create mode 100644 benchmark/blurs/benchmark_results.md create mode 100644 benchmark/blurs/check_cl.c delete mode 100644 benchmark/pixi.lock delete mode 100644 benchmark/pixi.toml rename benchmark/{ => sigmoid}/Makefile (100%) create mode 100644 benchmark/sigmoid/README.md rename benchmark/{ => sigmoid}/benchmark_sigmoid.c (85%) create mode 100644 benchmark/sigmoid/opencl_input.jpg create mode 100644 benchmark/sigmoid/opencl_output_per_channel.jpg create mode 100644 benchmark/sigmoid/opencl_output_rgb_ratio.jpg rename benchmark/{ => sigmoid}/parity_check.c (100%) create mode 100644 benchmark/sigmoid/sigmoid_benchmark_gpu.mojo rename benchmark/{ => sigmoid}/stb_image_write.h (100%) rename benchmark/{ => sigmoid}/validate_parity.py (100%) delete mode 100644 benchmark/sigmoid_benchmark_gpu.mojo create mode 100644 mojo/.gitattributes create mode 100644 mojo/.gitignore create mode 100644 mojo/iop/blurs/__init__.mojo create mode 100644 mojo/iop/blurs/kernels.mojo create mode 100644 mojo/iop/blurs/lib.mojo diff --git a/benchmark/README.md b/benchmark/README.md index 68fd5ae2e9..d929d8c908 100644 --- a/benchmark/README.md +++ b/benchmark/README.md @@ -1,6 +1,11 @@ -# Sigmoid Kernel Benchmarks +# Darktable Mojo Benchmarks -This directory contains benchmarks and parity checks for the darktable `sigmoid` module kernels, comparing the traditional **OpenCL (C)** implementation against the **Mojo GPU** implementation. +This directory contains performance benchmarks and validation tools for darktable module kernels ported to Mojo. + +## Subprojects + +- **[Sigmoid](./sigmoid)**: Benchmarks and parity checks for the sigmoid module. +- **[Blurs](./blurs)**: Benchmarks for the blurs convolution module. ## Prerequisites @@ -10,49 +15,8 @@ This directory contains benchmarks and parity checks for the darktable `sigmoid` ## Environment Setup -Initialize the environment using Pixi: +Initialize the environment using Pixi in the root `benchmark/` directory: ```bash pixi install -# or enter the shell -pixi shell -``` - -## Running Benchmarks - -### 1. OpenCL Baseline (C) -The C benchmark measures the performance of the original OpenCL kernels. - -```bash -make run ``` - -### 2. Mojo GPU Benchmark -The Mojo benchmark measures the performance of the ported kernels using Mojo's GPU abstraction. - -```bash -pixi run mojo sigmoid_benchmark_gpu.mojo -``` - -## Parity Validation - -To ensure the Mojo implementation produces numerically identical results to the OpenCL baseline, run the parity check script: - -```bash -pixi run python validate_parity.py -``` - -This script: -1. Compiles and runs the OpenCL parity check (`parity_check.c`). -2. Runs the Mojo GPU benchmark. -3. Compares sampled pixels across both implementations (RGB Ratio and Per-Channel modes). -4. Reports "PASS" if the results match within a tolerance of $10^{-6}$. - -## Files - -- `benchmark_sigmoid.c`: Main C-based OpenCL benchmark. -- `sigmoid_benchmark_gpu.mojo`: Mojo implementation and benchmark. -- `parity_check.c`: Minimal OpenCL runner for numerical validation. -- `validate_parity.py`: Automated comparison tool. -- `Makefile`: Build instructions for C/OpenCL binaries. -- `pixi.toml`: Project dependencies (Mojo, Python, etc.). diff --git a/benchmark/blurs/Makefile b/benchmark/blurs/Makefile new file mode 100644 index 0000000000..e16dc6b570 --- /dev/null +++ b/benchmark/blurs/Makefile @@ -0,0 +1,18 @@ +CC=gcc +CFLAGS=-O3 -Wall +LDFLAGS=-lOpenCL -lm + +TARGET=benchmark_blurs +SRC=benchmark_blurs.c + +all: $(TARGET) + +.PHONY: force +$(TARGET): $(SRC) force + $(CC) $(CFLAGS) $(SRC) -o $(TARGET) $(LDFLAGS) + +clean: + rm -f $(TARGET) + +run: all + ./$(TARGET) diff --git a/benchmark/blurs/README.md b/benchmark/blurs/README.md new file mode 100644 index 0000000000..efae830150 --- /dev/null +++ b/benchmark/blurs/README.md @@ -0,0 +1,30 @@ +# Blurs Kernel Benchmarks + +This directory contains benchmarks for the darktable `blurs` module kernels, comparing the **OpenCL (C)** implementation against the **Mojo GPU (Tiled)** implementation. + +## Running Benchmarks + +### 1. OpenCL Baseline (C) +```bash +make run +``` + +### 2. Mojo GPU Benchmark +Run from the `benchmark/blurs` directory. Use `-I` to point to the `mojo/` source root. + +```bash +mojo -I /path/to/darktable/mojo blurs_benchmark_gpu.mojo +``` + +Or if using pixi: +```bash +pixi run mojo -I /path/to/darktable/mojo blurs_benchmark_gpu.mojo +``` + +From the darktable project root: +```bash +cd benchmark/blurs && mojo -I ../../mojo blurs_benchmark_gpu.mojo +``` + +## Performance Notes +The Mojo implementation uses a tiled approach with SIMD vectorization to ensure coalesced memory access on the GPU. This is designed to be significantly faster than a naive implementation. diff --git a/benchmark/blurs/benchmark_blurs b/benchmark/blurs/benchmark_blurs new file mode 100755 index 0000000000000000000000000000000000000000..498cf22a4f394291ee55eea2314bde297f27c9bd GIT binary patch literal 17960 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 VC0mKebo%$LG9_*)P$*!v{{Uf+R)GKj literal 0 HcmV?d00001 diff --git a/benchmark/blurs/benchmark_blurs.c b/benchmark/blurs/benchmark_blurs.c new file mode 100644 index 0000000000..38a80a7406 --- /dev/null +++ b/benchmark/blurs/benchmark_blurs.c @@ -0,0 +1,180 @@ +#define CL_TARGET_OPENCL_VERSION 120 +#include +#include +#include +#include +#include +#include + +#define CHECK_CL(cmd) \ + { \ + cl_int _cl_err = cmd; \ + if (_cl_err != CL_SUCCESS) { \ + fprintf(stderr, "OpenCL error %d at %s:%d\n", _cl_err, __FILE__, __LINE__); \ + exit(1); \ + } \ + } + +char* read_file(const char* filename) { + FILE* f = fopen(filename, "rb"); + if (!f) return NULL; + fseek(f, 0, SEEK_END); + long size = ftell(f); + fseek(f, 0, SEEK_SET); + char* buf = (char*)malloc(size + 1); + if (!buf) { + fclose(f); + return NULL; + } + if (fread(buf, 1, size, f) != (size_t)size) { + free(buf); + fclose(f); + return NULL; + } + buf[size] = '\0'; + fclose(f); + return buf; +} + +static double run_benchmark(cl_context context, cl_command_queue queue, cl_program program, + cl_mem d_in, int width, int height, int radius) { + int k_width = 2 * radius + 1; + int iterations = 100; + if (radius >= 12) iterations = 30; + else if (radius >= 5) iterations = 80; + + // Create kernel + output image (reusable) + cl_image_format format = { CL_RGBA, CL_FLOAT }; + cl_image_desc desc = { CL_MEM_OBJECT_IMAGE2D, width, height, 0, 0, 0, 0, 0, 0, {NULL} }; + cl_int err; + cl_mem d_out = clCreateImage(context, CL_MEM_WRITE_ONLY, &format, &desc, NULL, &err); + CHECK_CL(err); + + // Create kernel image for this radius + size_t k_data_size = (size_t)k_width * k_width * sizeof(float); + float* h_kern = (float*)malloc(k_data_size); + for (int i = 0; i < k_width * k_width; i++) + h_kern[i] = 1.0f / (k_width * k_width); + + cl_image_format kern_format = { CL_R, CL_FLOAT }; + cl_image_desc kern_desc = { CL_MEM_OBJECT_IMAGE2D, k_width, k_width, 0, 0, 0, 0, 0, 0, {NULL} }; + cl_mem d_kern = clCreateImage(context, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, + &kern_format, &kern_desc, h_kern, &err); + CHECK_CL(err); + + cl_kernel kernel = clCreateKernel(program, "convolve", &err); + CHECK_CL(err); + + CHECK_CL(clSetKernelArg(kernel, 0, sizeof(cl_mem), &d_in)); + CHECK_CL(clSetKernelArg(kernel, 1, sizeof(cl_mem), &d_kern)); + CHECK_CL(clSetKernelArg(kernel, 2, sizeof(cl_mem), &d_out)); + CHECK_CL(clSetKernelArg(kernel, 3, sizeof(int), &width)); + CHECK_CL(clSetKernelArg(kernel, 4, sizeof(int), &height)); + CHECK_CL(clSetKernelArg(kernel, 5, sizeof(int), &radius)); + + printf("Benchmarking OpenCL convolve (Radius: %d, %dx%d, %d iters)...\n", radius, width, height, iterations); + fflush(stdout); + + cl_event event; + double total_time = 0; + for (int i = 0; i < iterations; i++) { + size_t global_work_size[2] = { (size_t)width, (size_t)height }; + CHECK_CL(clEnqueueNDRangeKernel(queue, kernel, 2, NULL, global_work_size, NULL, 0, NULL, &event)); + clWaitForEvents(1, &event); + cl_ulong start, end; + clGetEventProfilingInfo(event, CL_PROFILING_COMMAND_START, sizeof(start), &start, NULL); + clGetEventProfilingInfo(event, CL_PROFILING_COMMAND_END, sizeof(end), &end, NULL); + total_time += (double)(end - start) / 1000000.0; + clReleaseEvent(event); + } + double avg = total_time / iterations; + printf(" Average Time: %.4f ms\n", avg); + + clReleaseMemObject(d_kern); + clReleaseMemObject(d_out); + clReleaseKernel(kernel); + free(h_kern); + return avg; +} + +int main() { + printf("Starting C benchmark...\n"); + fflush(stdout); + + cl_int err; + cl_platform_id platform; + cl_device_id device; + cl_context context; + cl_command_queue queue; + int width = 6016; + int height = 4016; + size_t img_size = (size_t)width * height * 4 * sizeof(float); + + printf("Allocating memory for %dx%d image...\n", width, height); + fflush(stdout); + float* h_data = (float*)malloc(img_size); + if (!h_data) { fprintf(stderr, "Failed to allocate h_data\n"); return 1; } + + printf("Initializing host data (%zu bytes)...\n", img_size); + fflush(stdout); + for (size_t i = 0; i < (size_t)width * height * 4; i++) h_data[i] = 0.5f; + printf("Host data initialized.\n"); + fflush(stdout); + + // OpenCL Initialization + printf("Initializing OpenCL...\n"); + fflush(stdout); + cl_uint num_platforms; + err = clGetPlatformIDs(0, NULL, &num_platforms); + if (err != CL_SUCCESS || num_platforms == 0) { + fprintf(stderr, "No OpenCL platforms found\n"); + return 1; + } + CHECK_CL(clGetPlatformIDs(1, &platform, NULL)); + CHECK_CL(clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, &device, NULL)); + + char device_name[128]; + clGetDeviceInfo(device, CL_DEVICE_NAME, sizeof(device_name), device_name, NULL); + printf("Using device: %s\n", device_name); + + context = clCreateContext(NULL, 1, &device, NULL, NULL, &err); + CHECK_CL(err); + queue = clCreateCommandQueue(context, device, CL_QUEUE_PROFILING_ENABLE, &err); + CHECK_CL(err); + + // Load kernel source + const char* kernel_path = "../../data/kernels/blurs.cl"; + char* source = read_file(kernel_path); + if (!source) { fprintf(stderr, "Failed to load kernel\n"); return 1; } + + cl_program program = clCreateProgramWithSource(context, 1, (const char**)&source, NULL, &err); + CHECK_CL(err); + const char* options = "-I ../../data/kernels/"; + err = clBuildProgram(program, 1, &device, options, NULL, NULL); + if (err != CL_SUCCESS) { + char log[16384]; + clGetProgramBuildInfo(program, device, CL_PROGRAM_BUILD_LOG, sizeof(log), log, NULL); + fprintf(stderr, "Build error:\n%s\n", log); + return 1; + } + + // Create input image (reused across radii) + cl_image_format format = { CL_RGBA, CL_FLOAT }; + cl_image_desc desc = { CL_MEM_OBJECT_IMAGE2D, width, height, 0, 0, 0, 0, 0, 0, {NULL} }; + cl_mem d_in = clCreateImage(context, CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR, + &format, &desc, h_data, &err); + CHECK_CL(err); + + int radii[] = {3, 8, 15}; + int num_radii = sizeof(radii) / sizeof(radii[0]); + for (int r = 0; r < num_radii; r++) { + run_benchmark(context, queue, program, d_in, width, height, radii[r]); + } + + free(source); free(h_data); + clReleaseMemObject(d_in); + clReleaseProgram(program); + clReleaseCommandQueue(queue); + clReleaseContext(context); + return 0; +} diff --git a/benchmark/blurs/benchmark_results.md b/benchmark/blurs/benchmark_results.md new file mode 100644 index 0000000000..2571b2f9ef --- /dev/null +++ b/benchmark/blurs/benchmark_results.md @@ -0,0 +1,59 @@ +# GPU Convolution Benchmark Results + +An execution-time comparison on a massive 24.1 Megapixel ($6016 \times 4016$, 4-channel float32) image, comparing: +1. **OpenCL C-Benchmark** (`benchmark_blurs.c` using C/OpenCL host) +2. **Mojo GPU Naive Baseline** (replicating the global memory `UnsafePointer` implementation from `iop/blurs` in Mojo) +3. **Mojo GPU Tiled Convolution** (using a single compiled kernel with dynamic runtime `radius` parameter, zero `UnsafePointer` usage) + +--- + +## Benchmark Configuration + +- **Image Resolution**: $6016 \times 4016$ (4 channels, RGBA) +- **Data Type**: `Float32` +- **Kernel Size**: $31 \times 31$ Box Blur (`RADIUS = 15`) +- **Kernel Initialization**: Normalized Box Blur (each element = $1 / 961$) +- **Target GPU**: AMD HIP/OpenCL GPU (`gfx1201`) +- **LDS Buffer Allocation Size**: Sized to support any dynamic runtime `radius` up to $25$ + +--- + +## Performance Summary + +| Implementation | Average Latency (ms) | Rel. Performance | +| :--- | :--- | :--- | +| **Mojo GPU Tiled (`TileTensor`)** | **38.5 ms** | **1.65x** (Fastest) 🏆 | +| **Mojo GPU Naive Baseline** | **63 ms** | **1.00x** | +| **OpenCL convolve (C-Benchmark)** | **69 ms** | **0.91x** | + +--- + +## Technical Analysis & Key Discoveries + +### 1. Zero-Specialization Dynamic Runtime Radius +We transitioned the GPU kernel from compile-time specialization of the radius to a pure, user-selected runtime parameter: +```mojo +def convolve_gpu_kernel[ + InLayout: TensorLayout, + OutLayout: TensorLayout, + max_radius: Int, # Sizing upper bound for LDS buffer allocation +]( + in_t: TileTensor[DTYPE, InLayout, MutAnyOrigin], + out_t: TileTensor[DTYPE, OutLayout, MutAnyOrigin], + k_val: Float32, # Precomputed box-blur weight (1 / kern_size) + radius: Int, # Dynamic runtime radius parameter + ... +) +``` +- **LDS Allocation Sized by `MAX_RADIUS = 25`**: A compile-time constant `MAX_RADIUS` sizes the shared memory array. This single compilation supports *any* runtime user-selected radius $r \le 25$ without generating multiple specializations. +- **Division-Free 2D Strided Loader**: Instead of mapping a flat thread index using slow runtime modulo and division operations (which is highly detrimental when radius is dynamic), we developed an elegant 2D strided loader: + ```mojo + for ly in range(ty, actual_halo_h, TILE_H): + for lx in range(tx, actual_halo_w, TILE_W): + ... + sh_tile[c, ly, lx] = val + ``` + This eliminates all division/modulo instructions from the loading stage and preserves perfectly coalesced, bank-conflict-free shared memory writes. + +### 2. Double-Occupancy via Alpha-Elimination +By omitting the Alpha channel from the shared tile layout (`row_major[RGB, HALO_H, HALO_W]`), we reduced the LDS footprint from **45.6 KB** to **34.2 KB**. This allows **2 active blocks per CU** on gfx1201's 64 KB LDS limit, doubling latency hiding and keeping execution throughput at an optimal level. diff --git a/benchmark/blurs/check_cl.c b/benchmark/blurs/check_cl.c new file mode 100644 index 0000000000..e31e82bda3 --- /dev/null +++ b/benchmark/blurs/check_cl.c @@ -0,0 +1,14 @@ +#include +#include + +int main() { + printf("Checking OpenCL platforms...\n"); + cl_uint num_platforms; + cl_int err = clGetPlatformIDs(0, NULL, &num_platforms); + if (err != CL_SUCCESS) { + printf("clGetPlatformIDs failed with %d\n", err); + return 1; + } + printf("Found %u platforms.\n", num_platforms); + return 0; +} diff --git a/benchmark/pixi.lock b/benchmark/pixi.lock deleted file mode 100644 index 38ce7ccdb5..0000000000 --- a/benchmark/pixi.lock +++ /dev/null @@ -1,899 +0,0 @@ -version: 6 -environments: - default: - channels: - - url: https://conda.modular.com/max-nightly/ - - url: https://conda.anaconda.org/conda-forge/ - options: - pypi-prerelease-mode: if-necessary-or-explicit - packages: - linux-64: - - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.3-py314hd8ed1ab_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.3-hecca717_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_17.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_17.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_17.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_17.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_17.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_17.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_17.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.modular.com/max-nightly/linux-64/max-26.2.0.dev2026022205-3.14release.conda - - conda: https://conda.modular.com/max-nightly/linux-64/max-core-26.2.0.dev2026022205-release.conda - - conda: https://conda.modular.com/max-nightly/noarch/mblack-26.2.0.dev2026022205-release.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - - conda: https://conda.modular.com/max-nightly/linux-64/mojo-0.26.2.0.dev2026022205-release.conda - - conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-0.26.2.0.dev2026022205-release.conda - - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-0.26.2.0.dev2026022205-release.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py314h2b28147_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.7.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.3-h4df99d1_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py314h67df5f8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hfb55c3c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.3.2-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py314h5bd0f2a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h387f397_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda -packages: -- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - build_number: 20 - sha256: 1dd3fffd892081df9726d7eb7e0dea6198962ba775bd88842135a4ddb4deb3c9 - md5: a9f577daf3de00bca7c3c76c0ecbd1de - depends: - - __glibc >=2.17,<3.0.a0 - - libgomp >=7.5.0 - constrains: - - openmp_impl <0.0a0 - license: BSD-3-Clause - size: 28948 - timestamp: 1770939786096 -- conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda - sha256: a3967b937b9abf0f2a99f3173fa4630293979bd1644709d89580e7c62a544661 - md5: aaa2a381ccc56eac91d63b6c1240312f - depends: - - cpython - - python-gil - license: MIT - license_family: MIT - size: 8191 - timestamp: 1744137672556 -- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda - sha256: c30daba32ddebbb7ded490f0e371eae90f51e72db620554089103b4a6934b0d5 - md5: 51a19bba1b8ebfb60df25cde030b7ebc - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: bzip2-1.0.6 - license_family: BSD - size: 260341 - timestamp: 1757437258798 -- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - sha256: b5974ec9b50e3c514a382335efa81ed02b05906849827a34061c496f4defa0b2 - md5: bddacf101bb4dd0e51811cb69c7790e2 - depends: - - __unix - license: ISC - size: 146519 - timestamp: 1767500828366 -- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda - sha256: 38cfe1ee75b21a8361c8824f5544c3866f303af1762693a178266d7f198e8715 - md5: ea8a6c3256897cc31263de9f455e25d9 - depends: - - python >=3.10 - - __unix - - python - license: BSD-3-Clause - license_family: BSD - size: 97676 - timestamp: 1764518652276 -- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.3-py314hd8ed1ab_101.conda - noarch: generic - sha256: 91b06300879df746214f7363d6c27c2489c80732e46a369eb2afc234bcafb44c - md5: 3bb89e4f795e5414addaa531d6b1500a - depends: - - python >=3.14,<3.15.0a0 - - python_abi * *_cp314 - license: Python-2.0 - size: 50078 - timestamp: 1770674447292 -- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda - sha256: 142a722072fa96cf16ff98eaaf641f54ab84744af81754c292cb81e0881c0329 - md5: 186a18e3ba246eccfc7cff00cd19a870 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - license: MIT - license_family: MIT - size: 12728445 - timestamp: 1767969922681 -- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda - sha256: c18ab120a0613ada4391b15981d86ff777b5690ca461ea7e9e49531e8f374745 - md5: 63ccfdc3a3ce25b027b8767eb722fca8 - depends: - - python >=3.9 - - zipp >=3.20 - - python - license: Apache-2.0 - license_family: APACHE - size: 34641 - timestamp: 1747934053147 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda - sha256: 19d8bd5bb2fde910ec59e081eeb59529491995ce0d653a5209366611023a0b3a - md5: 4ebae00eae9705b0c3d6d1018a81d047 - depends: - - importlib-metadata >=4.8.3 - - jupyter_core >=4.12,!=5.0.* - - python >=3.9 - - python-dateutil >=2.8.2 - - pyzmq >=23.0 - - tornado >=6.2 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - size: 106342 - timestamp: 1733441040958 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - sha256: 1d34b80e5bfcd5323f104dbf99a2aafc0e5d823019d626d0dce5d3d356a2a52a - md5: b38fe4e78ee75def7e599843ef4c1ab0 - depends: - - __unix - - python - - platformdirs >=2.5 - - python >=3.10 - - traitlets >=5.3 - - python - constrains: - - pywin32 >=300 - license: BSD-3-Clause - license_family: BSD - size: 65503 - timestamp: 1760643864586 -- conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda - sha256: 0960d06048a7185d3542d850986d807c6e37ca2e644342dd0c72feefcf26c2a4 - md5: b38117a3c920364aff79f870c984b4a3 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: LGPL-2.1-or-later - size: 134088 - timestamp: 1754905959823 -- conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238 - md5: 3f43953b7d3fb3aaa1d0d0723d91e368 - depends: - - keyutils >=1.6.1,<2.0a0 - - libedit >=3.1.20191231,<3.2.0a0 - - libedit >=3.1.20191231,<4.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - openssl >=3.3.1,<4.0a0 - license: MIT - license_family: MIT - size: 1370023 - timestamp: 1719463201255 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_101.conda - sha256: 565941ac1f8b0d2f2e8f02827cbca648f4d18cd461afc31f15604cd291b5c5f3 - md5: 12bd9a3f089ee6c9266a37dab82afabd - depends: - - __glibc >=2.17,<3.0.a0 - - zstd >=1.5.7,<1.6.0a0 - constrains: - - binutils_impl_linux-64 2.45.1 - license: GPL-3.0-only - license_family: GPL - size: 725507 - timestamp: 1770267139900 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda - build_number: 5 - sha256: 18c72545080b86739352482ba14ba2c4815e19e26a7417ca21a95b76ec8da24c - md5: c160954f7418d7b6e87eaf05a8913fa9 - depends: - - libopenblas >=0.3.30,<0.3.31.0a0 - - libopenblas >=0.3.30,<1.0a0 - constrains: - - mkl <2026 - - liblapack 3.11.0 5*_openblas - - libcblas 3.11.0 5*_openblas - - blas 2.305 openblas - - liblapacke 3.11.0 5*_openblas - license: BSD-3-Clause - license_family: BSD - size: 18213 - timestamp: 1765818813880 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda - build_number: 5 - sha256: 0cbdcc67901e02dc17f1d19e1f9170610bd828100dc207de4d5b6b8ad1ae7ad8 - md5: 6636a2b6f1a87572df2970d3ebc87cc0 - depends: - - libblas 3.11.0 5_h4a7cf45_openblas - constrains: - - liblapacke 3.11.0 5*_openblas - - blas 2.305 openblas - - liblapack 3.11.0 5*_openblas - license: BSD-3-Clause - license_family: BSD - size: 18194 - timestamp: 1765818837135 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda - sha256: d789471216e7aba3c184cd054ed61ce3f6dac6f87a50ec69291b9297f8c18724 - md5: c277e0a4d549b03ac1e9d6cbbe3d017b - depends: - - ncurses - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - ncurses >=6.5,<7.0a0 - license: BSD-2-Clause - license_family: BSD - size: 134676 - timestamp: 1738479519902 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.3-hecca717_0.conda - sha256: 1e1b08f6211629cbc2efe7a5bca5953f8f6b3cae0eeb04ca4dacee1bd4e2db2f - md5: 8b09ae86839581147ef2e5c5e229d164 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - constrains: - - expat 2.7.3.* - license: MIT - license_family: MIT - size: 76643 - timestamp: 1763549731408 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda - sha256: 31f19b6a88ce40ebc0d5a992c131f57d919f73c0b92cd1617a5bec83f6e961e6 - md5: a360c33a5abe61c07959e449fa1453eb - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: MIT - license_family: MIT - size: 58592 - timestamp: 1769456073053 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_17.conda - sha256: 43860222cf3abf04ded0cf24541a105aa388e0e1d4d6ca46258e186d4e87ae3e - md5: 3c281169ea25b987311400d7a7e28445 - depends: - - __glibc >=2.17,<3.0.a0 - - _openmp_mutex >=4.5 - constrains: - - libgcc-ng ==15.2.0=*_17 - - libgomp 15.2.0 he0feb66_17 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 1040478 - timestamp: 1770252533873 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_17.conda - sha256: bdfe50501e4a2d904a5eae65a7ae26e2b7a29b473ab084ad55d96080b966502e - md5: 1478bfa85224a65ab096d69ffd2af1e5 - depends: - - libgcc 15.2.0 he0feb66_17 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 27541 - timestamp: 1770252546553 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_17.conda - sha256: 1604c083dd65bc91e68b6cfe32c8610395088cb96af1acaf71f0dcaf83ac58f7 - md5: a6c682ac611cb1fa4d73478f9e6efb06 - depends: - - libgfortran5 15.2.0 h68bc16d_17 - constrains: - - libgfortran-ng ==15.2.0=*_17 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 27515 - timestamp: 1770252591906 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_17.conda - sha256: b1c77b85da9a3e204de986f59e262268805c6a35dffdf3953f1b98407db2aef3 - md5: 202fdf8cad9eea704c2b0d823d1732bf - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=15.2.0 - constrains: - - libgfortran 15.2.0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 2480824 - timestamp: 1770252563579 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_17.conda - sha256: b961b5dd9761907a7179678b58a69bb4fc16b940eb477f635aea3aec0a3f17a6 - md5: 51b78c6a757575c0d12f4401ffc67029 - depends: - - __glibc >=2.17,<3.0.a0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 603334 - timestamp: 1770252441199 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - build_number: 5 - sha256: c723b6599fcd4c6c75dee728359ef418307280fa3e2ee376e14e85e5bbdda053 - md5: b38076eb5c8e40d0106beda6f95d7609 - depends: - - libblas 3.11.0 5_h4a7cf45_openblas - constrains: - - blas 2.305 openblas - - liblapacke 3.11.0 5*_openblas - - libcblas 3.11.0 5*_openblas - license: BSD-3-Clause - license_family: BSD - size: 18200 - timestamp: 1765818857876 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda - sha256: 755c55ebab181d678c12e49cced893598f2bab22d582fbbf4d8b83c18be207eb - md5: c7c83eecbb72d88b940c249af56c8b17 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - constrains: - - xz 5.8.2.* - license: 0BSD - size: 113207 - timestamp: 1768752626120 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda - sha256: fe171ed5cf5959993d43ff72de7596e8ac2853e9021dec0344e583734f1e0843 - md5: 2c21e66f50753a083cbe6b80f38268fa - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: BSD-2-Clause - license_family: BSD - size: 92400 - timestamp: 1769482286018 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda - sha256: 199d79c237afb0d4780ccd2fbf829cea80743df60df4705202558675e07dd2c5 - md5: be43915efc66345cccb3c310b6ed0374 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libgfortran - - libgfortran5 >=14.3.0 - constrains: - - openblas >=0.3.30,<0.3.31.0a0 - license: BSD-3-Clause - license_family: BSD - size: 5927939 - timestamp: 1763114673331 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda - sha256: 0105bd108f19ea8e6a78d2d994a6d4a8db16d19a41212070d2d1d48a63c34161 - md5: a587892d3c13b6621a6091be690dbca2 - depends: - - libgcc-ng >=12 - license: ISC - size: 205978 - timestamp: 1716828628198 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda - sha256: 04596fcee262a870e4b7c9807224680ff48d4d0cc0dac076a602503d3dc6d217 - md5: da5be73701eecd0e8454423fd6ffcf30 - depends: - - __glibc >=2.17,<3.0.a0 - - icu >=78.2,<79.0a0 - - libgcc >=14 - - libzlib >=1.3.1,<2.0a0 - license: blessing - size: 942808 - timestamp: 1768147973361 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_17.conda - sha256: 50c48cd3716a2e58e8e2e02edc78fef2d08fffe1e3b1ed40eb5f87e7e2d07889 - md5: 24c2fe35fa45cd71214beba6f337c071 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc 15.2.0 he0feb66_17 - constrains: - - libstdcxx-ng ==15.2.0=*_17 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 5852406 - timestamp: 1770252584235 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_17.conda - sha256: ca3fb322dab3373946b1064da686ec076f5b1b9caf0a2823dad00d0b0f704928 - md5: ea12f5a6bf12c88c06750d9803e1a570 - depends: - - libstdcxx 15.2.0 h934c35e_17 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 27573 - timestamp: 1770252638797 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda - sha256: 1a7539cfa7df00714e8943e18de0b06cceef6778e420a5ee3a2a145773758aee - md5: db409b7c1720428638e7c0d509d3e1b5 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: BSD-3-Clause - license_family: BSD - size: 40311 - timestamp: 1766271528534 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 - md5: edb0dca6bc32e4f4789199455a1dbeb8 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - constrains: - - zlib 1.3.1 *_2 - license: Zlib - license_family: Other - size: 60963 - timestamp: 1727963148474 -- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - sha256: 7b1da4b5c40385791dbc3cc85ceea9fad5da680a27d5d3cb8bfaa185e304a89e - md5: 5b5203189eb668f042ac2b0826244964 - depends: - - mdurl >=0.1,<1 - - python >=3.10 - license: MIT - license_family: MIT - size: 64736 - timestamp: 1754951288511 -- conda: https://conda.modular.com/max-nightly/linux-64/max-26.2.0.dev2026022205-3.14release.conda - sha256: abe9988bd7aa6881b07157512251af5b5e0b930e319030e7923effd6c7bbe8ce - md5: 724d343713de47a6210ba3c8127c0d3b - depends: - - numpy >=1.18 - - typing-extensions >=4.12.2 - - pyyaml >=6.0.1 - - rich >=13.0.1 - - python-gil - - max-core ==26.2.0.dev2026022205 release - - python_abi 3.14.* *_cp314 - constrains: - - click >=8.0.0 - - exceptiongroup >=0.2.2 - - gguf >=0.17.1 - - hf-transfer >=0.1.9 - - huggingface_hub >=0.28.0 - - llguidance >=0.7.30 - - jinja2 >=3.1.0 - - pillow >=11.0.0 - - psutil >=6.1.1 - - pydantic-settings >=2.7.1 - - pydantic - - pydantic-core - - requests >=2.32.3 - - sentencepiece >=0.2.0 - - taskgroup >=0.2.2 - - tqdm >=4.67.1 - - transformers >=4.57.0,<5.0.0 - - uvicorn >=0.34.0 - - uvloop >=0.21.0 - - aiofiles >=24.1.0 - - asgiref >=3.8.1 - - fastapi >=0.115.3 - - grpcio >=1.68.0 - - httpx >=0.28.1,<0.29 - - msgspec >=0.19.0 - - opentelemetry-api >=1.29.0 - - opentelemetry-exporter-otlp-proto-http >=1.27.0 - - opentelemetry-exporter-prometheus >=0.50b0 - - opentelemetry-sdk >=1.29.0,<1.36.0 - - prometheus_client >=0.21.0 - - protobuf >=6.33.5,<6.34.0 - - pyinstrument >=5.0.1 - - python-json-logger >=2.0.7 - - pyzmq >=26.3.0 - - regex >=2024.11.6 - - scipy >=1.13.0 - - sse-starlette >=2.1.2 - - starlette >=0.47.2 - license: LicenseRef-Modular-Proprietary - size: 6106368 - timestamp: 1771738763384 -- conda: https://conda.modular.com/max-nightly/linux-64/max-core-26.2.0.dev2026022205-release.conda - sha256: 898982c0b96cb40d83c08d84bf7a7295a58387f8c0be9571055f6fbbd5e9389b - md5: a25753c21792034b93c21cf09b47031e - depends: - - mojo-compiler ==0.26.2.0.dev2026022205 release - license: LicenseRef-Modular-Proprietary - size: 131486199 - timestamp: 1771738763382 -- conda: https://conda.modular.com/max-nightly/noarch/mblack-26.2.0.dev2026022205-release.conda - noarch: python - sha256: 1e044bdd68205536a6a8e2158240bb1e3fc2e6eee294fcd181a9957c0eb7ade6 - md5: aaa44d262d7410c49ab18353820f185f - depends: - - python >=3.10 - - click >=8.0.0 - - mypy_extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9.0 - - platformdirs >=2 - - tomli >=1.1.0 - license: MIT - size: 135129 - timestamp: 1771738763383 -- conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - sha256: 78c1bbe1723449c52b7a9df1af2ee5f005209f67e40b6e1d3c7619127c43b1c7 - md5: 592132998493b3ff25fd7479396e8351 - depends: - - python >=3.9 - license: MIT - license_family: MIT - size: 14465 - timestamp: 1733255681319 -- conda: https://conda.modular.com/max-nightly/linux-64/mojo-0.26.2.0.dev2026022205-release.conda - sha256: 0d8ca62be9a970f4382c99549fb88c39c7dc28092ee812f03f1639990d4948b2 - md5: 1275bc6aedb6410368dd1bf6d98f6f90 - depends: - - python >=3.10 - - mojo-compiler ==0.26.2.0.dev2026022205 release - - mblack ==26.2.0.dev2026022205 release - - jupyter_client >=8.6.2,<8.7 - license: LicenseRef-Modular-Proprietary - size: 88491769 - timestamp: 1771738763383 -- conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-0.26.2.0.dev2026022205-release.conda - sha256: 173dd0f2401b3342d7cf59c29745a84f2c1168976a6f102318631b81c370c6b4 - md5: c8db27767e0be9250b72e3414602ff37 - depends: - - mojo-python ==0.26.2.0.dev2026022205 release - license: LicenseRef-Modular-Proprietary - size: 87474357 - timestamp: 1771738763382 -- conda: https://conda.modular.com/max-nightly/noarch/mojo-python-0.26.2.0.dev2026022205-release.conda - noarch: python - sha256: 71199f2ae34cfd0cfcce57613448d3d54e000151908ca9564ccb8e1b6beb4ddd - md5: 7742228841ea05a513e667fbf57fdfb2 - depends: - - python - license: LicenseRef-Modular-Proprietary - size: 676288 - timestamp: 1771738763380 -- conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - sha256: 6ed158e4e5dd8f6a10ad9e525631e35cee8557718f83de7a4e3966b1f772c4b1 - md5: e9c622e0d00fa24a6292279af3ab6d06 - depends: - - python >=3.9 - license: MIT - license_family: MIT - size: 11766 - timestamp: 1745776666688 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 - md5: 47e340acb35de30501a76c7c799c41d7 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: X11 AND BSD-3-Clause - size: 891641 - timestamp: 1738195959188 -- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py314h2b28147_1.conda - sha256: 1d8377c8001c15ed12c2713b723213474b435706ab9d34ede69795d64af9e94d - md5: 4ea6b620fdf24a1a0bc4f1c7134dfafb - depends: - - python - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - libcblas >=3.9.0,<4.0a0 - - python_abi 3.14.* *_cp314 - - libblas >=3.9.0,<4.0a0 - - liblapack >=3.9.0,<4.0a0 - constrains: - - numpy-base <0a0 - license: BSD-3-Clause - license_family: BSD - size: 8926994 - timestamp: 1770098474394 -- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda - sha256: 44c877f8af015332a5d12f5ff0fb20ca32f896526a7d0cdb30c769df1144fb5c - md5: f61eb8cd60ff9057122a3d338b99c00f - depends: - - __glibc >=2.17,<3.0.a0 - - ca-certificates - - libgcc >=14 - license: Apache-2.0 - license_family: Apache - size: 3164551 - timestamp: 1769555830639 -- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda - sha256: c1fc0f953048f743385d31c468b4a678b3ad20caffdeaa94bed85ba63049fd58 - md5: b76541e68fea4d511b1ac46a28dcd2c6 - depends: - - python >=3.8 - - python - license: Apache-2.0 - license_family: APACHE - size: 72010 - timestamp: 1769093650580 -- conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.4-pyhd8ed1ab_0.conda - sha256: 29ea20d0faf20374fcd61c25f6d32fb8e9a2c786a7f1473a0c3ead359470fbe1 - md5: 2908273ac396d2cd210a8127f5f1c0d6 - depends: - - python >=3.10 - license: MPL-2.0 - license_family: MOZILLA - size: 53739 - timestamp: 1769677743677 -- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.7.0-pyhcf101f3_0.conda - sha256: 5b14e300187919e783b24507dbeaeee891d97a3e9a9c80b5dcd3073753bac69c - md5: 2157d0900a4bc2e9a0ba3cccb8497e8c - depends: - - python >=3.10 - - python - license: MIT - size: 24091 - timestamp: 1770990257318 -- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - sha256: 5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a - md5: 6b6ece66ebcae2d5f326c77ef2c5a066 - depends: - - python >=3.9 - license: BSD-2-Clause - license_family: BSD - size: 889287 - timestamp: 1750615908735 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda - build_number: 101 - sha256: cb0628c5f1732f889f53a877484da98f5a0e0f47326622671396fb4f2b0cd6bd - md5: c014ad06e60441661737121d3eae8a60 - depends: - - __glibc >=2.17,<3.0.a0 - - bzip2 >=1.0.8,<2.0a0 - - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.7.3,<3.0a0 - - libffi >=3.5.2,<3.6.0a0 - - libgcc >=14 - - liblzma >=5.8.2,<6.0a0 - - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.51.2,<4.0a0 - - libuuid >=2.41.3,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.5,<4.0a0 - - python_abi 3.14.* *_cp314 - - readline >=8.3,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - zstd >=1.5.7,<1.6.0a0 - license: Python-2.0 - size: 36702440 - timestamp: 1770675584356 - python_site_packages_path: lib/python3.14/site-packages -- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - sha256: d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664 - md5: 5b8d21249ff20967101ffa321cab24e8 - depends: - - python >=3.9 - - six >=1.5 - - python - license: Apache-2.0 - license_family: APACHE - size: 233310 - timestamp: 1751104122689 -- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.3-h4df99d1_101.conda - sha256: 233aebd94c704ac112afefbb29cf4170b7bc606e22958906f2672081bc50638a - md5: 235765e4ea0d0301c75965985163b5a1 - depends: - - cpython 3.14.3.* - - python_abi * *_cp314 - license: Python-2.0 - size: 50062 - timestamp: 1770674497152 -- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - build_number: 8 - sha256: ad6d2e9ac39751cc0529dd1566a26751a0bf2542adb0c232533d32e176e21db5 - md5: 0539938c55b6b1a59b560e843ad864a4 - constrains: - - python 3.14.* *_cp314 - license: BSD-3-Clause - license_family: BSD - size: 6989 - timestamp: 1752805904792 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py314h67df5f8_1.conda - sha256: b318fb070c7a1f89980ef124b80a0b5ccf3928143708a85e0053cde0169c699d - md5: 2035f68f96be30dc60a5dfd7452c7941 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python >=3.14,<3.15.0a0 - - python_abi 3.14.* *_cp314 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - size: 202391 - timestamp: 1770223462836 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hfb55c3c_0.conda - noarch: python - sha256: a00a41b66c12d9c60e66b391e9a4832b7e28743348cf4b48b410b91927cd7819 - md5: 3399d43f564c905250c1aea268ebb935 - depends: - - python - - __glibc >=2.17,<3.0.a0 - - libstdcxx >=14 - - libgcc >=14 - - _python_abi3_support 1.* - - cpython >=3.12 - - zeromq >=4.3.5,<4.4.0a0 - license: BSD-3-Clause - license_family: BSD - size: 212218 - timestamp: 1757387023399 -- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - sha256: 12ffde5a6f958e285aa22c191ca01bbd3d6e710aa852e00618fa6ddc59149002 - md5: d7d95fc8287ea7bf33e0e7116d2b95ec - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - ncurses >=6.5,<7.0a0 - license: GPL-3.0-only - license_family: GPL - size: 345073 - timestamp: 1765813471974 -- conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.3.2-pyhcf101f3_0.conda - sha256: ed17985cec5a0540002c6cabe67848f7cc17e5f4019c0e2a40534e9b7c0b38de - md5: 33950a076fd589a7655c6888cc3d2b34 - depends: - - markdown-it-py >=2.2.0 - - pygments >=2.13.0,<3.0.0 - - python >=3.10 - - typing_extensions >=4.0.0,<5.0.0 - - python - license: MIT - license_family: MIT - size: 208269 - timestamp: 1769971520792 -- conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d - md5: 3339e3b65d58accf4ca4fb8748ab16b3 - depends: - - python >=3.9 - - python - license: MIT - license_family: MIT - size: 18455 - timestamp: 1753199211006 -- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda - sha256: cafeec44494f842ffeca27e9c8b0c27ed714f93ac77ddadc6aaf726b5554ebac - md5: cffd3bdd58090148f4cfcd831f4b26ab - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libzlib >=1.3.1,<2.0a0 - constrains: - - xorg-libx11 >=1.8.12,<2.0a0 - license: TCL - license_family: BSD - size: 3301196 - timestamp: 1769460227866 -- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - sha256: 62940c563de45790ba0f076b9f2085a842a65662268b02dd136a8e9b1eaf47a8 - md5: 72e780e9aa2d0a3295f59b1874e3768b - depends: - - python >=3.10 - - python - license: MIT - license_family: MIT - size: 21453 - timestamp: 1768146676791 -- conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py314h5bd0f2a_0.conda - sha256: b8f9f9ae508d79c9c697eb01b6a8d2ed4bc1899370f44aa6497c8abbd15988ea - md5: e35f08043f54d26a1be93fdbf90d30c3 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python >=3.14,<3.15.0a0 - - python_abi 3.14.* *_cp314 - license: Apache-2.0 - license_family: Apache - size: 905436 - timestamp: 1765458949518 -- conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda - sha256: f39a5620c6e8e9e98357507262a7869de2ae8cc07da8b7f84e517c9fd6c2b959 - md5: 019a7385be9af33791c989871317e1ed - depends: - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - size: 110051 - timestamp: 1733367480074 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c - md5: edd329d7d3a4ab45dcf905899a7a6115 - depends: - - typing_extensions ==4.15.0 pyhcf101f3_0 - license: PSF-2.0 - license_family: PSF - size: 91383 - timestamp: 1756220668932 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731 - md5: 0caa1af407ecff61170c9437a808404d - depends: - - python >=3.10 - - python - license: PSF-2.0 - license_family: PSF - size: 51692 - timestamp: 1756220668932 -- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - sha256: 1d30098909076af33a35017eed6f2953af1c769e273a0626a04722ac4acaba3c - md5: ad659d0a2b3e47e38d829aa8cad2d610 - license: LicenseRef-Public-Domain - size: 119135 - timestamp: 1767016325805 -- conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - sha256: 6d9ea2f731e284e9316d95fa61869fe7bbba33df7929f82693c121022810f4ad - md5: a77f85f77be52ff59391544bfe73390a - depends: - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - license: MIT - license_family: MIT - size: 85189 - timestamp: 1753484064210 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h387f397_9.conda - sha256: 47cfe31255b91b4a6fa0e9dbaf26baa60ac97e033402dbc8b90ba5fee5ffe184 - md5: 8035e5b54c08429354d5d64027041cad - depends: - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libsodium >=1.0.20,<1.0.21.0a0 - - krb5 >=1.21.3,<1.22.0a0 - license: MPL-2.0 - license_family: MOZILLA - size: 310648 - timestamp: 1757370847287 -- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda - sha256: b4533f7d9efc976511a73ef7d4a2473406d7f4c750884be8e8620b0ce70f4dae - md5: 30cd29cb87d819caead4d55184c1d115 - depends: - - python >=3.10 - - python - license: MIT - license_family: MIT - size: 24194 - timestamp: 1764460141901 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda - sha256: 68f0206ca6e98fea941e5717cec780ed2873ffabc0e1ed34428c061e2c6268c7 - md5: 4a13eeac0b5c8e5b8ab496e6c4ddd829 - depends: - - __glibc >=2.17,<3.0.a0 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - size: 601375 - timestamp: 1764777111296 diff --git a/benchmark/pixi.toml b/benchmark/pixi.toml deleted file mode 100644 index 46776c37af..0000000000 --- a/benchmark/pixi.toml +++ /dev/null @@ -1,12 +0,0 @@ -[workspace] -authors = ["maxchisto "] -channels = ["https://conda.modular.com/max-nightly", "conda-forge"] -name = "benchmark" -platforms = ["linux-64"] -version = "0.1.0" - -[tasks] - -[dependencies] -mojo = ">=0.26.2.0.dev2026022205,<0.27" -max = ">=26.2.0.dev2026022205,<27" diff --git a/benchmark/Makefile b/benchmark/sigmoid/Makefile similarity index 100% rename from benchmark/Makefile rename to benchmark/sigmoid/Makefile diff --git a/benchmark/sigmoid/README.md b/benchmark/sigmoid/README.md new file mode 100644 index 0000000000..68fd5ae2e9 --- /dev/null +++ b/benchmark/sigmoid/README.md @@ -0,0 +1,58 @@ +# Sigmoid Kernel Benchmarks + +This directory contains benchmarks and parity checks for the darktable `sigmoid` module kernels, comparing the traditional **OpenCL (C)** implementation against the **Mojo GPU** implementation. + +## Prerequisites + +- **Mojo**: Required for running `.mojo` benchmarks. +- **OpenCL**: Required for hardware acceleration on GPU (headers and libraries). +- **Pixi**: Used for environment and dependency management. + +## Environment Setup + +Initialize the environment using Pixi: + +```bash +pixi install +# or enter the shell +pixi shell +``` + +## Running Benchmarks + +### 1. OpenCL Baseline (C) +The C benchmark measures the performance of the original OpenCL kernels. + +```bash +make run +``` + +### 2. Mojo GPU Benchmark +The Mojo benchmark measures the performance of the ported kernels using Mojo's GPU abstraction. + +```bash +pixi run mojo sigmoid_benchmark_gpu.mojo +``` + +## Parity Validation + +To ensure the Mojo implementation produces numerically identical results to the OpenCL baseline, run the parity check script: + +```bash +pixi run python validate_parity.py +``` + +This script: +1. Compiles and runs the OpenCL parity check (`parity_check.c`). +2. Runs the Mojo GPU benchmark. +3. Compares sampled pixels across both implementations (RGB Ratio and Per-Channel modes). +4. Reports "PASS" if the results match within a tolerance of $10^{-6}$. + +## Files + +- `benchmark_sigmoid.c`: Main C-based OpenCL benchmark. +- `sigmoid_benchmark_gpu.mojo`: Mojo implementation and benchmark. +- `parity_check.c`: Minimal OpenCL runner for numerical validation. +- `validate_parity.py`: Automated comparison tool. +- `Makefile`: Build instructions for C/OpenCL binaries. +- `pixi.toml`: Project dependencies (Mojo, Python, etc.). diff --git a/benchmark/benchmark_sigmoid.c b/benchmark/sigmoid/benchmark_sigmoid.c similarity index 85% rename from benchmark/benchmark_sigmoid.c rename to benchmark/sigmoid/benchmark_sigmoid.c index 4b8f32ad6b..2e55b13d1f 100644 --- a/benchmark/benchmark_sigmoid.c +++ b/benchmark/sigmoid/benchmark_sigmoid.c @@ -148,14 +148,10 @@ int main() { // Create command queue with profiling enabled cl_queue_properties props[] = { CL_QUEUE_PROPERTIES, CL_QUEUE_PROFILING_ENABLE, 0 }; queue = clCreateCommandQueueWithProperties(context, device, props, &err); - if (err != CL_SUCCESS) { - // Fallback for older OpenCL versions if needed, but we targeting 2.2 above - queue = clCreateCommandQueue(context, device, CL_QUEUE_PROFILING_ENABLE, &err); - } CHECK_CL(err); // Load kernel source - const char* kernel_path = "../data/kernels/sigmoid.cl"; + const char* kernel_path = "../../data/kernels/sigmoid.cl"; printf("Reading kernel source from %s...\n", kernel_path); char* source = read_file(kernel_path); if (!source) { @@ -168,7 +164,7 @@ int main() { CHECK_CL(err); // Need to point to the directory containing common.h and colorspace.h - const char* options = "-I ../data/kernels/"; + const char* options = "-I ../../data/kernels/"; err = clBuildProgram(program, 1, &device, options, NULL, NULL); if (err != CL_SUCCESS) { char build_log[16384]; @@ -183,9 +179,6 @@ int main() { cl_kernel kernel_rgb_ratio = clCreateKernel(program, "sigmoid_loglogistic_rgb_ratio", &err); CHECK_CL(err); - CHECK_CL(clGetPlatformIDs(1, &platform, &num_platforms)); - CHECK_CL(clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, &device, NULL)); - cl_image_format format = { CL_RGBA, CL_FLOAT }; cl_image_desc desc = { CL_MEM_OBJECT_IMAGE2D, width, height, 0, 0, 0, 0, 0, 0, {0} }; @@ -233,10 +226,11 @@ int main() { CHECK_CL(clSetKernelArg(kernel_per_channel, 11, sizeof(cl_mem), &d_mat2)); CHECK_CL(clSetKernelArg(kernel_per_channel, 12, sizeof(cl_mem), &d_mat3)); - int warmup_iters = 100; - int iterations = 1000; + int warmup_iters = 20; + int iterations = 200; + int batch_size = 20; + int num_batches = iterations / batch_size; cl_event event; - double total_time = 0; printf(" Warmup (%d iterations)...\n", warmup_iters); for (int i = 0; i < warmup_iters; i++) { @@ -245,7 +239,8 @@ int main() { } clFinish(queue); - printf(" Benchmarking (%d iterations)...\n", iterations); + printf(" Benchmarking (%d iterations, batch_size=%d)...\n", iterations, batch_size); + double *times = (double*)malloc(iterations * sizeof(double)); for (int i = 0; i < iterations; i++) { size_t global_work_size[2] = { width, height }; CHECK_CL(clEnqueueNDRangeKernel(queue, kernel_per_channel, 2, NULL, global_work_size, NULL, 0, NULL, &event)); @@ -254,10 +249,29 @@ int main() { cl_ulong start, end; clGetEventProfilingInfo(event, CL_PROFILING_COMMAND_START, sizeof(start), &start, NULL); clGetEventProfilingInfo(event, CL_PROFILING_COMMAND_END, sizeof(end), &end, NULL); - total_time += (double)(end - start) / 1000000.0; // ns to ms + times[i] = (double)(end - start) / 1000000.0; // ns to ms clReleaseEvent(event); } - printf(" Average Time: %.4f ms\n", total_time / iterations); + + double *batch_means = (double*)malloc(num_batches * sizeof(double)); + double overall_sum = 0; + for (int b = 0; b < num_batches; b++) { + double batch_sum = 0; + for (int j = 0; j < batch_size; j++) + batch_sum += times[b * batch_size + j]; + batch_means[b] = batch_sum / batch_size; + overall_sum += batch_means[b]; + } + double mean = overall_sum / num_batches; + double sum_sq = 0; + for (int b = 0; b < num_batches; b++) { + double d = batch_means[b] - mean; + sum_sq += d * d; + } + double std = sqrt(sum_sq / num_batches); + free(batch_means); + free(times); + printf(" Mean: %.4f ms, Std: %.4f ms\n", mean, std); // Save result of the last iteration to a file float* h_out = (float*)malloc(img_size); @@ -289,8 +303,8 @@ int main() { } clFinish(queue); - total_time = 0; - printf(" Benchmarking (%d iterations)...\n", iterations); + printf(" Benchmarking (%d iterations, batch_size=%d)...\n", iterations, batch_size); + times = (double*)malloc(iterations * sizeof(double)); for (int i = 0; i < iterations; i++) { size_t global_work_size[2] = { width, height }; CHECK_CL(clEnqueueNDRangeKernel(queue, kernel_rgb_ratio, 2, NULL, global_work_size, NULL, 0, NULL, &event)); @@ -299,10 +313,29 @@ int main() { cl_ulong start, end; clGetEventProfilingInfo(event, CL_PROFILING_COMMAND_START, sizeof(start), &start, NULL); clGetEventProfilingInfo(event, CL_PROFILING_COMMAND_END, sizeof(end), &end, NULL); - total_time += (double)(end - start) / 1000000.0; // ns to ms + times[i] = (double)(end - start) / 1000000.0; // ns to ms clReleaseEvent(event); } - printf(" Average Time: %.4f ms\n", total_time / iterations); + + batch_means = (double*)malloc(num_batches * sizeof(double)); + overall_sum = 0; + for (int b = 0; b < num_batches; b++) { + double batch_sum = 0; + for (int j = 0; j < batch_size; j++) + batch_sum += times[b * batch_size + j]; + batch_means[b] = batch_sum / batch_size; + overall_sum += batch_means[b]; + } + mean = overall_sum / num_batches; + sum_sq = 0; + for (int b = 0; b < num_batches; b++) { + double d = batch_means[b] - mean; + sum_sq += d * d; + } + std = sqrt(sum_sq / num_batches); + free(batch_means); + free(times); + printf(" Mean: %.4f ms, Std: %.4f ms\n", mean, std); // Save result of the last iteration to a file h_out = (float*)malloc(img_size); diff --git a/benchmark/sigmoid/opencl_input.jpg b/benchmark/sigmoid/opencl_input.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e5d0773daffcd24ae3139543195e21a65f76b59b GIT binary patch literal 712749 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

EfLUD)(%)cyP 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

c+LdKL381imAN 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

=9J_oV@g)w>Rk+J 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Ξ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

M;HZIMzY#R>0>a0103K*Zh1WE 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

f96!L2I)lrz08nBtTJOe~EXipM`cOhLfMI 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 EAKXS)p8x;= literal 0 HcmV?d00001 diff --git a/benchmark/parity_check.c b/benchmark/sigmoid/parity_check.c similarity index 100% rename from benchmark/parity_check.c rename to benchmark/sigmoid/parity_check.c diff --git a/benchmark/sigmoid/sigmoid_benchmark_gpu.mojo b/benchmark/sigmoid/sigmoid_benchmark_gpu.mojo new file mode 100644 index 0000000000..45059945ff --- /dev/null +++ b/benchmark/sigmoid/sigmoid_benchmark_gpu.mojo @@ -0,0 +1,246 @@ +from std.gpu.host import DeviceContext, DeviceBuffer, HostBuffer +from std.utils import Index +from std.math import sqrt +from std.benchmark import Bench, BenchConfig, Bencher, BenchId +from layout import Layout, LayoutTensor, UNKNOWN_VALUE +from layout.runtime_layout import RuntimeLayout, IndexList +from std.memory.unsafe_pointer import UnsafePointer +from iop.sigmoid.kernels import ( + apply_sigmoid_rgb_ratio, + apply_sigmoid_per_channel, +) +from iop.sigmoid.lib import ( + _launch_rgb_ratio_gpu, + _launch_per_channel_gpu, +) + +comptime WIDTH = 6016 +comptime HEIGHT = 4016 +comptime CHANNELS = 4 +comptime IMAGE_LAYOUT = Layout.row_major(UNKNOWN_VALUE, UNKNOWN_VALUE, CHANNELS) +comptime DTYPE = DType.float32 + + +def main() raises: + var total_floats = HEIGHT * WIDTH * CHANNELS + var ctx = DeviceContext() + print("Using GPU API:", ctx.api()) + + var input_buffer_host = ctx.enqueue_create_host_buffer[DTYPE](total_floats) + var input_buffer_device = ctx.enqueue_create_buffer[DTYPE](total_floats) + var output_buffer_device = ctx.enqueue_create_buffer[DTYPE](total_floats) + + var rt = RuntimeLayout[IMAGE_LAYOUT].row_major( + IndexList[3](HEIGHT, WIDTH, CHANNELS) + ) + + var input_image_host = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( + UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=Int(input_buffer_host.unsafe_ptr()) + ), + rt, + ) + var input_image_device = LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin]( + UnsafePointer[Float32, ImmutAnyOrigin]( + unsafe_from_address=Int(input_buffer_device.unsafe_ptr()) + ), + rt, + ) + var output_image_device = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( + UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=Int(output_buffer_device.unsafe_ptr()) + ), + rt, + ) + + for y in range(HEIGHT): + var h = Float32(y) / (HEIGHT - 1) * 6.0 + var segment = Int(h) + var f1 = h - Float32(segment) + var pr: Float32 + var pg: Float32 + var pb: Float32 + if segment == 0: + pr = 1.0; pg = f1; pb = 0.0 + elif segment == 1: + pr = 1.0 - f1; pg = 1.0; pb = 0.0 + elif segment == 2: + pr = 0.0; pg = 1.0; pb = f1 + elif segment == 3: + pr = 0.0; pg = 1.0 - f1; pb = 1.0 + elif segment == 4: + pr = f1; pg = 0.0; pb = 1.0 + elif segment == 5: + pr = 1.0; pg = 0.0; pb = 1.0 - f1 + else: + pr = 1.0; pg = 0.0; pb = 0.0 + + for x in range(WIDTH): + var r: Float32 + var g: Float32 + var b: Float32 + var mid_x = Float32(WIDTH) / 2.0 + if Float32(x) < mid_x: + var t = Float32(x) / mid_x + r = pr * t; g = pg * t; b = pb * t + else: + var t = (Float32(x) - mid_x) / (Float32(WIDTH) - 1.0 - mid_x) + r = pr * (1.0 - t) + t + g = pg * (1.0 - t) + t + b = pb * (1.0 - t) + t + input_image_host.store[width=4]( + Index(y, x, 0), SIMD[DType.float32, 4](r, g, b, 1.0) + ) + + ctx.enqueue_copy(input_buffer_device, input_buffer_host) + + var white_target = Float32(1.0) + var black_target = Float32(0.000152) + var paper_exp = Float32(0.5) + var film_fog = Float32(0.0) + var contrast_power = Float32(2.5) + var skew_power = Float32(1.0) + var hue_preservation = Float32(1.0) + + var identity = SIMD[DType.float32, 16](0) + identity[0] = 1; identity[5] = 1; identity[10] = 1; identity[15] = 1 + + _launch_rgb_ratio_gpu( + ctx, + input_image_device, + output_image_device, + white_target, + black_target, + paper_exp, + film_fog, + contrast_power, + skew_power, + WIDTH, + HEIGHT, + WIDTH * HEIGHT, + ) + ctx.synchronize() + + var output_buffer_host = ctx.enqueue_create_host_buffer[DTYPE](total_floats) + ctx.enqueue_copy(output_buffer_host, output_buffer_device) + ctx.synchronize() + var output_image_host = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( + UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=Int(output_buffer_host.unsafe_ptr()) + ), + rt, + ) + + for i in range(1, 4): + var t = Float32(i) * 0.2 + var x = Int(t * Float32(WIDTH)) + var y = Int(t * Float32(HEIGHT)) + var res = output_image_host.load[width=4](Index(y, x, 0)) + print( + "RGB Ratio -", Int(t * 100), "% pixel: [", + res[0], res[1], res[2], res[3], "]", + ) + + _launch_per_channel_gpu( + ctx, + input_image_device, + output_image_device, + white_target, + paper_exp, + film_fog, + contrast_power, + skew_power, + hue_preservation, + identity, + identity, + identity, + WIDTH, + HEIGHT, + WIDTH * HEIGHT, + ) + ctx.synchronize() + + ctx.enqueue_copy(output_buffer_host, output_buffer_device) + ctx.synchronize() + + for i in range(1, 4): + var t = Float32(i) * 0.2 + var x = Int(t * Float32(WIDTH)) + var y = Int(t * Float32(HEIGHT)) + var res = output_image_host.load[width=4](Index(y, x, 0)) + print( + "Per Channel -", Int(t * 100), "% pixel: [", + res[0], res[1], res[2], res[3], "]", + ) + + var bench = Bench(BenchConfig( + max_iters=200, num_warmup_iters=20, max_batch_size=20, + )) + + @parameter + def bench_rgb(mut b: Bencher) raises: + @parameter + def run_rgb(ctx: DeviceContext) raises: + _launch_rgb_ratio_gpu( + ctx, + input_image_device, + output_image_device, + white_target, + black_target, + paper_exp, + film_fog, + contrast_power, + skew_power, + WIDTH, + HEIGHT, + WIDTH * HEIGHT, + ) + + b.iter_custom[run_rgb](ctx) + ctx.synchronize() + + @parameter + def bench_per(mut b: Bencher) raises: + @parameter + def run_per(ctx: DeviceContext) raises: + _launch_per_channel_gpu( + ctx, + input_image_device, + output_image_device, + white_target, + paper_exp, + film_fog, + contrast_power, + skew_power, + hue_preservation, + identity, + identity, + identity, + WIDTH, + HEIGHT, + WIDTH * HEIGHT, + ) + + b.iter_custom[run_per](ctx) + ctx.synchronize() + + bench.bench_function[bench_rgb]( + BenchId("Mojo-Sigmoid-GPU-RGB-Ratio-V2"), + ) + bench.bench_function[bench_per]( + BenchId("Mojo-Sigmoid-GPU-Per-Channel-V2"), + ) + print(bench) + + for idx in range(len(bench.info_vec)): + ref info = bench.info_vec[idx] + var overall_mean = info.result.mean("ms") + var sum_sq = 0.0 + var v_n = Float64(len(info.result.runs)) + for b in range(len(info.result.runs)): + var batch_mean = info.result.runs[b].mean("ms") + var d = batch_mean - overall_mean + sum_sq += d * d + var variance = sum_sq / v_n + var std = sqrt(variance) + print(info.name, "- std:", std, "ms") diff --git a/benchmark/stb_image_write.h b/benchmark/sigmoid/stb_image_write.h similarity index 100% rename from benchmark/stb_image_write.h rename to benchmark/sigmoid/stb_image_write.h diff --git a/benchmark/validate_parity.py b/benchmark/sigmoid/validate_parity.py similarity index 100% rename from benchmark/validate_parity.py rename to benchmark/sigmoid/validate_parity.py diff --git a/benchmark/sigmoid_benchmark_gpu.mojo b/benchmark/sigmoid_benchmark_gpu.mojo deleted file mode 100644 index 0321f52346..0000000000 --- a/benchmark/sigmoid_benchmark_gpu.mojo +++ /dev/null @@ -1,601 +0,0 @@ -from gpu import block_dim, block_idx, thread_idx -from gpu.host import DeviceContext, DeviceBuffer, Dim, HostBuffer -from layout import Layout, LayoutTensor -from utils import Index, IndexList -from math import ceildiv, isnan, sqrt, pow, max, min -from benchmark import Bench, BenchConfig, Bencher, BenchId -from algorithm.functional import elementwise - -# Configuration -comptime WIDTH = 6016 -comptime HEIGHT = 4016 -comptime CHANNELS = 4 -comptime IMAGE_LAYOUT = Layout.row_major(HEIGHT, WIDTH, CHANNELS) -comptime DTYPE = DType.float32 - - -# Removed Pixel struct to use 3D LayoutTensor directly as requested - - -@always_inline -fn generalized_loglogistic_sigmoid_scalar( - value: Float32, - magnitude: Float32, - paper_exp: Float32, - film_fog: Float32, - film_power: Float32, - paper_power: Float32, -) -> Float32: - var clamped_value = max(value, Float32(0.0)) - var film_response = pow(film_fog + clamped_value, film_power) - var paper_response = magnitude * pow( - film_response / (paper_exp + film_response), paper_power - ) - if isnan(paper_response): - return magnitude - return paper_response - - -@always_inline -fn apply_sigmoid_rgb_ratio( - in_r: Float32, - in_g: Float32, - in_b: Float32, - in_a: Float32, - white_target: Float32, - black_target: Float32, - paper_exp: Float32, - film_fog: Float32, - film_power: Float32, - paper_power: Float32, -) -> SIMD[DType.float32, 4]: - # Desaturate negative values - var avg = max((in_r + in_g + in_b) / 3.0, Float32(0.0)) - var min_v = min(min(in_r, in_g), in_b) - var sat = Float32(1.0) - if min_v < 0.0: - sat = -avg / (min_v - avg) - - var p_r = avg + sat * (in_r - avg) - var p_g = avg + sat * (in_g - avg) - var p_b = avg + sat * (in_b - avg) - - var luma = (p_r + p_g + p_b) / 3.0 - var mapped_luma = generalized_loglogistic_sigmoid_scalar( - luma, white_target, paper_exp, film_fog, film_power, paper_power - ) - - if luma > 1e-9: - var scale = mapped_luma / luma - p_r *= scale - p_g *= scale - p_b *= scale - else: - p_r = mapped_luma - p_g = mapped_luma - p_b = mapped_luma - - var p_min = min(min(p_r, p_g), p_b) - var p_max = max(max(p_r, p_g), p_b) - var eps = Float32(1e-6) - var d_white = (white_target - mapped_luma) / (p_max - mapped_luma + eps) - var d_black = (black_target - mapped_luma) / (p_min - mapped_luma - eps) - var db_vs_chroma = min(d_white, d_black) - var cvm_border = (mapped_luma - p_min) / (mapped_luma + eps) - var p_chr_adj = 1.0 / (cvm_border * db_vs_chroma + eps) - var h_chr = ( - 2.0 * cvm_border / (1.0 - cvm_border * cvm_border + eps) - ) * p_chr_adj - var h_z = sqrt(h_chr * h_chr + 1.0) - var chroma_f = h_chr / (1.0 + h_z) * db_vs_chroma - - return SIMD[DType.float32, 4]( - mapped_luma + chroma_f * (p_r - mapped_luma), - mapped_luma + chroma_f * (p_g - mapped_luma), - mapped_luma + chroma_f * (p_b - mapped_luma), - in_a, - ) - - -@always_inline -fn apply_sigmoid_per_channel( - in_r: Float32, - in_g: Float32, - in_b: Float32, - in_a: Float32, - white_target: Float32, - paper_exp: Float32, - film_fog: Float32, - contrast_power: Float32, - skew_power: Float32, - hue_preservation: Float32, - pipe_to_base: SIMD[DType.float32, 16], - base_to_rendering: SIMD[DType.float32, 16], - rendering_to_pipe: SIMD[DType.float32, 16], -) -> SIMD[DType.float32, 4]: - # 1. Transform to base space - var i_r = ( - pipe_to_base[0] * in_r + pipe_to_base[1] * in_g + pipe_to_base[2] * in_b - ) - var i_g = ( - pipe_to_base[4] * in_r + pipe_to_base[5] * in_g + pipe_to_base[6] * in_b - ) - var i_b = ( - pipe_to_base[8] * in_r - + pipe_to_base[9] * in_g - + pipe_to_base[10] * in_b - ) - - # 2. Desaturate negative - var avg = max((i_r + i_g + i_b) / 3.0, Float32(0.0)) - var min_v = min(min(i_r, i_g), i_b) - var sat = Float32(1.0) - if min_v < 0.0: - sat = -avg / (min_v - avg) - i_r = avg + sat * (i_r - avg) - i_g = avg + sat * (i_g - avg) - i_b = avg + sat * (i_b - avg) - - # 3. Transform to rendering space - var r_r = ( - base_to_rendering[0] * i_r - + base_to_rendering[1] * i_g - + base_to_rendering[2] * i_b - ) - var r_g = ( - base_to_rendering[4] * i_r - + base_to_rendering[5] * i_g - + base_to_rendering[6] * i_b - ) - var r_b = ( - base_to_rendering[8] * i_r - + base_to_rendering[9] * i_g - + base_to_rendering[10] * i_b - ) - - # 4. Per-channel sigmoid curves - var pc_r = generalized_loglogistic_sigmoid_scalar( - r_r, white_target, paper_exp, film_fog, contrast_power, skew_power - ) - var pc_g = generalized_loglogistic_sigmoid_scalar( - r_g, white_target, paper_exp, film_fog, contrast_power, skew_power - ) - var pc_b = generalized_loglogistic_sigmoid_scalar( - r_b, white_target, paper_exp, film_fog, contrast_power, skew_power - ) - - # 5. Preserve hue & energy - var p_min: Float32 - var p_mid: Float32 - var p_max: Float32 - var pc_min: Float32 - var pc_mid: Float32 - var pc_max: Float32 - - if r_r >= r_g: - if r_g >= r_b: # R G B - p_max = r_r - p_mid = r_g - p_min = r_b - pc_max = pc_r - pc_mid = pc_g - pc_min = pc_b - elif r_b >= r_r: # B R G - p_max = r_b - p_mid = r_r - p_min = r_g - pc_max = pc_b - pc_mid = pc_r - pc_min = pc_g - else: # R B G - p_max = r_r - p_mid = r_b - p_min = r_g - pc_max = pc_r - pc_mid = pc_b - pc_min = pc_g - else: - if r_r >= r_b: # G R B - p_max = r_g - p_mid = r_r - p_min = r_b - pc_max = pc_g - pc_mid = pc_r - pc_min = pc_b - elif r_b >= r_g: # B G R - p_max = r_b - p_mid = r_g - p_min = r_r - pc_max = pc_b - pc_mid = pc_g - pc_min = pc_r - else: # G B R - p_max = r_g - p_mid = r_b - p_min = r_r - pc_max = pc_g - pc_mid = pc_b - pc_min = pc_r - - var chroma = p_max - p_min - var midscale = Float32(0.0) - if chroma != 0.0: - midscale = (p_mid - p_min) / chroma - - var f_hc = pc_min + (pc_max - pc_min) * midscale - var n_mid = (1.0 - hue_preservation) * pc_mid + hue_preservation * f_hc - - var blend = 2.0 * p_min / (p_min + p_mid + 1e-9) - var target = blend * (pc_r + pc_g + pc_b) + (1.0 - blend) * ( - pc_min + n_mid + pc_max - ) - - var res_min: Float32 - var res_mid: Float32 - var res_max: Float32 - if n_mid <= pc_mid: - res_mid = ( - (1.0 - hue_preservation) * pc_mid - + hue_preservation - * (midscale * pc_max + (1.0 - midscale) * (target - pc_max)) - ) / (1.0 + hue_preservation * (1.0 - midscale)) - res_min = target - pc_max - res_mid - res_max = pc_max - else: - res_mid = ( - (1.0 - hue_preservation) * pc_mid - + hue_preservation - * (pc_min * (1.0 - midscale) + midscale * (target - pc_min)) - ) / (1.0 + hue_preservation * midscale) - res_min = pc_min - res_max = target - pc_min - res_mid - - var res_r: Float32 - var res_g: Float32 - var res_b: Float32 - if r_r >= r_g: - if r_g >= r_b: # R G B - res_r = res_max - res_g = res_mid - res_b = res_min - elif r_b >= r_r: # B R G - res_b = res_max - res_r = res_mid - res_g = res_min - else: # R B G - res_r = res_max - res_b = res_mid - res_g = res_min - else: - if r_r >= r_b: # G R B - res_g = res_max - res_r = res_mid - res_b = res_min - elif r_b >= r_g: # B G R - res_b = res_max - res_g = res_mid - res_r = res_min - else: # G B R - res_g = res_max - res_b = res_mid - res_r = res_min - - # 6. Transform to pipe space - var out_r = ( - rendering_to_pipe[0] * res_r - + rendering_to_pipe[1] * res_g - + rendering_to_pipe[2] * res_b - ) - var out_g = ( - rendering_to_pipe[4] * res_r - + rendering_to_pipe[5] * res_g - + rendering_to_pipe[6] * res_b - ) - var out_b = ( - rendering_to_pipe[8] * res_r - + rendering_to_pipe[9] * res_g - + rendering_to_pipe[10] * res_b - ) - - return SIMD[DType.float32, 4](out_r, out_g, out_b, in_a) - - -fn run_sigmoid_rgb_ratio( - ctx: DeviceContext, - output: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], - input: LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin], - white_target: Float32, - black_target: Float32, - paper_exp: Float32, - film_fog: Float32, - film_power: Float32, - paper_power: Float32, - num_pixels: Int, -) raises: - @parameter - @always_inline - fn rgb_ratio_closure[ - width: Int, rank: Int, alignment: Int - ](indices: IndexList[rank]) capturing -> None: - var px_idx = indices[0] - var y = px_idx // WIDTH - var x = px_idx % WIDTH - var pix = input.load[width=4](Index(y, x, 0)) - var res = apply_sigmoid_rgb_ratio( - pix[0], - pix[1], - pix[2], - pix[3], - white_target, - black_target, - paper_exp, - film_fog, - film_power, - paper_power, - ) - output.store[width=4](Index(y, x, 0), res) - - elementwise[rgb_ratio_closure, 1, target="gpu"](num_pixels, ctx) - - -fn run_sigmoid_per_channel( - ctx: DeviceContext, - output: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], - input: LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin], - white_target: Float32, - paper_exp: Float32, - film_fog: Float32, - contrast_power: Float32, - skew_power: Float32, - hue_preservation: Float32, - pipe_to_base: SIMD[DType.float32, 16], - base_to_rendering: SIMD[DType.float32, 16], - rendering_to_pipe: SIMD[DType.float32, 16], - num_pixels: Int, -) raises: - @parameter - @always_inline - fn per_channel_closure[ - width: Int, rank: Int, alignment: Int - ](indices: IndexList[rank]) capturing -> None: - var px_idx = indices[0] - var y = px_idx // WIDTH - var x = px_idx % WIDTH - var pix = input.load[width=4](Index(y, x, 0)) - var res = apply_sigmoid_per_channel( - pix[0], - pix[1], - pix[2], - pix[3], - white_target, - paper_exp, - film_fog, - contrast_power, - skew_power, - hue_preservation, - pipe_to_base, - base_to_rendering, - rendering_to_pipe, - ) - output.store[width=4](Index(y, x, 0), res) - - elementwise[per_channel_closure, 1, target="gpu"](num_pixels, ctx) - - -fn main() raises: - var total_floats = HEIGHT * WIDTH * CHANNELS - var ctx = DeviceContext() - print("Using GPU API:", ctx.api()) - - var input_buffer_host = ctx.enqueue_create_host_buffer[DTYPE](total_floats) - var input_buffer_device = ctx.enqueue_create_buffer[DTYPE](total_floats) - var output_buffer_device = ctx.enqueue_create_buffer[DTYPE](total_floats) - - var input_image_host = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( - input_buffer_host - ) - var input_image_device = LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin]( - input_buffer_device - ) - var output_image_device = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( - output_buffer_device - ) - - for y in range(HEIGHT): - var h = Float32(y) / (HEIGHT - 1) * 6.0 - var segment = Int(h) - var f1 = h - Float32(segment) - var pr: Float32 - var pg: Float32 - var pb: Float32 - if segment == 0: - pr = 1.0 - pg = f1 - pb = 0.0 - elif segment == 1: - pr = 1.0 - f1 - pg = 1.0 - pb = 0.0 - elif segment == 2: - pr = 0.0 - pg = 1.0 - pb = f1 - elif segment == 3: - pr = 0.0 - pg = 1.0 - f1 - pb = 1.0 - elif segment == 4: - pr = f1 - pg = 0.0 - pb = 1.0 - elif segment == 5: - pr = 1.0 - pg = 0.0 - pb = 1.0 - f1 - else: - pr = 1.0 - pg = 0.0 - pb = 0.0 - - for x in range(WIDTH): - var r: Float32 - var g: Float32 - var b: Float32 - var mid_x = Float32(WIDTH) / 2.0 - if Float32(x) < mid_x: - var t = Float32(x) / mid_x - r = pr * t - g = pg * t - b = pb * t - else: - var t = (Float32(x) - mid_x) / (Float32(WIDTH) - 1.0 - mid_x) - r = pr * (1.0 - t) + t - g = pg * (1.0 - t) + t - b = pb * (1.0 - t) + t - input_image_host.store[width=4]( - Index(y, x, 0), SIMD[DType.float32, 4](r, g, b, 1.0) - ) - - ctx.enqueue_copy(input_buffer_device, input_buffer_host) - - var white_target = Float32(1.0) - var black_target = Float32(0.000152) - var paper_exp = Float32(0.5) - var film_fog = Float32(0.0) - var contrast_power = Float32(2.5) - var skew_power = Float32(1.0) - var hue_preservation = Float32(1.0) - - var identity = SIMD[DType.float32, 16](0) - identity[0] = 1 - identity[5] = 1 - identity[10] = 1 - identity[15] = 1 - - # Runs - run_sigmoid_rgb_ratio( - ctx, - output_image_device, - input_image_device, - white_target, - black_target, - paper_exp, - film_fog, - contrast_power, - skew_power, - WIDTH * HEIGHT, - ) - ctx.synchronize() - - var output_buffer_host = ctx.enqueue_create_host_buffer[DTYPE](total_floats) - ctx.enqueue_copy(output_buffer_host, output_buffer_device) - ctx.synchronize() - var output_image_host = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( - output_buffer_host - ) - - for i in range(1, 4): - var t = Float32(i) * 0.2 - var x = Int(t * Float32(WIDTH)) - var y = Int(t * Float32(HEIGHT)) - var res = output_image_host.load[width=4](Index(y, x, 0)) - print( - "RGB Ratio -", - Int(t * 100), - "% pixel: [", - res[0], - res[1], - res[2], - res[3], - "]", - ) - - run_sigmoid_per_channel( - ctx, - output_image_device, - input_image_device, - white_target, - paper_exp, - film_fog, - contrast_power, - skew_power, - hue_preservation, - identity, - identity, - identity, - WIDTH * HEIGHT, - ) - ctx.synchronize() - - ctx.enqueue_copy(output_buffer_host, output_buffer_device) - ctx.synchronize() - - for i in range(1, 4): - var t = Float32(i) * 0.2 - var x = Int(t * Float32(WIDTH)) - var y = Int(t * Float32(HEIGHT)) - var res = output_image_host.load[width=4](Index(y, x, 0)) - print( - "Per Channel -", - Int(t * 100), - "% pixel: [", - res[0], - res[1], - res[2], - res[3], - "]", - ) - - # Benchmarking - var bench = Bench(BenchConfig(max_iters=1000, num_warmup_iters=100)) - - @parameter - fn bench_rgb(mut b: Bencher) raises: - @parameter - fn run(ctx: DeviceContext) raises: - run_sigmoid_rgb_ratio( - ctx, - output_image_device, - input_image_device, - white_target, - black_target, - paper_exp, - film_fog, - contrast_power, - skew_power, - WIDTH * HEIGHT, - ) - - b.iter_custom[run](ctx) - ctx.synchronize() - - @parameter - fn bench_per(mut b: Bencher) raises: - @parameter - fn run(ctx: DeviceContext) raises: - run_sigmoid_per_channel( - ctx, - output_image_device, - input_image_device, - white_target, - paper_exp, - film_fog, - contrast_power, - skew_power, - hue_preservation, - identity, - identity, - identity, - WIDTH * HEIGHT, - ) - - b.iter_custom[run](ctx) - ctx.synchronize() - - bench.bench_function[bench_rgb]( - BenchId("Mojo-Sigmoid-GPU-RGB-Ratio-V2"), fixed_iterations=1000 - ) - bench.bench_function[bench_per]( - BenchId("Mojo-Sigmoid-GPU-Per-Channel-V2"), fixed_iterations=1000 - ) - print(bench) diff --git a/mojo/.gitattributes b/mojo/.gitattributes new file mode 100644 index 0000000000..997504b465 --- /dev/null +++ b/mojo/.gitattributes @@ -0,0 +1,2 @@ +# SCM syntax highlighting & preventing 3-way merges +pixi.lock merge=binary linguist-language=YAML linguist-generated=true -diff diff --git a/mojo/.gitignore b/mojo/.gitignore new file mode 100644 index 0000000000..ae849e65b8 --- /dev/null +++ b/mojo/.gitignore @@ -0,0 +1,3 @@ +# pixi environments +.pixi/* +!.pixi/config.toml diff --git a/mojo/iop/blurs/__init__.mojo b/mojo/iop/blurs/__init__.mojo new file mode 100644 index 0000000000..8abcdf557a --- /dev/null +++ b/mojo/iop/blurs/__init__.mojo @@ -0,0 +1 @@ +# iop.blurs package diff --git a/mojo/iop/blurs/kernels.mojo b/mojo/iop/blurs/kernels.mojo new file mode 100644 index 0000000000..0898c38d54 --- /dev/null +++ b/mojo/iop/blurs/kernels.mojo @@ -0,0 +1,59 @@ +from layout import Layout, LayoutTensor, UNKNOWN_VALUE +from std.math import clamp +from std.utils import Index +from std.memory.unsafe_pointer import UnsafePointer + +comptime CHANNELS = 4 +comptime IMAGE_LAYOUT = Layout.row_major(UNKNOWN_VALUE, UNKNOWN_VALUE, CHANNELS) +comptime DTYPE = DType.float32 + + +@always_inline +def apply_convolve_vector[W: Int]( + x: Int, + y: Int, + width: Int, + height: Int, + radius: Int, + in_t: LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin], + kern_ptr: UnsafePointer[Float32, ImmutAnyOrigin], +) -> SIMD[DType.float32, W * 4]: + var acc = SIMD[DType.float32, W * 4](0) + + for l in range(-radius, radius + 1): + var ii = clamp(y + l, 0, height - 1) + for m in range(-radius, radius + 1): + var ik = l + radius + var jk = m + radius + var k_width = 2 * radius + 1 + var k = kern_ptr[ik * k_width + jk] + + for i in range(W): + var jj = clamp(x + i + m, 0, width - 1) + var pix = in_t.load[width=4](Index(ii, jj, 0)) + + acc[i * 4] += k * pix[0] + acc[i * 4 + 1] += k * pix[1] + acc[i * 4 + 2] += k * pix[2] + acc[i * 4 + 3] += k * pix[3] + + for i in range(W): + var curr_x = x + i + if curr_x < width: + var orig = in_t.load[width=4](Index(y, curr_x, 0)) + acc[i * 4 + 3] = orig[3] + + return acc + + +@always_inline +def apply_convolve( + x: Int, + y: Int, + width: Int, + height: Int, + radius: Int, + in_t: LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin], + kern_ptr: UnsafePointer[Float32, ImmutAnyOrigin], +) -> SIMD[DType.float32, 4]: + return apply_convolve_vector[1](x, y, width, height, radius, in_t, kern_ptr) diff --git a/mojo/iop/blurs/lib.mojo b/mojo/iop/blurs/lib.mojo new file mode 100644 index 0000000000..c8e966add0 --- /dev/null +++ b/mojo/iop/blurs/lib.mojo @@ -0,0 +1,190 @@ +from std.gpu.host import DeviceContext +from layout import Layout, LayoutTensor, UNKNOWN_VALUE +from layout.runtime_layout import RuntimeLayout, IndexList +from layout.coord import Coord +from std.utils import Index +from std.algorithm.functional import elementwise, vectorize +from std.gpu.host.compile import get_gpu_target +from std.memory import alloc +from std.memory.unsafe_pointer import UnsafePointer +from std.sys import simd_width_of +from iop.blurs.kernels import apply_convolve, apply_convolve_vector + +comptime CHANNELS = 4 +comptime IMAGE_LAYOUT = Layout.row_major(UNKNOWN_VALUE, UNKNOWN_VALUE, CHANNELS) +comptime DTYPE = DType.float32 +comptime SIMD_WIDTH = simd_width_of[DTYPE, target=get_gpu_target()]() + + +struct MojoCtx: + var use_gpu: Int + var dctx_addr: Int + + def __init__(out self, use_gpu: Int, dctx_addr: Int): + self.use_gpu = use_gpu + self.dctx_addr = dctx_addr + + +def _launch_convolve_gpu( + dctx: DeviceContext, + in_t: LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin], + out_t: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], + kern_ptr: UnsafePointer[Float32, ImmutAnyOrigin], + width: Int, + height: Int, + radius: Int, + num_pixels: Int, +) raises: + @parameter + @always_inline + def gpu_kernel[simd_width: Int, alignment: Int](coord: Coord) capturing -> None: + var px_idx = Int(coord[0].value()) + var y = px_idx // width + var x = px_idx % width + var res = apply_convolve_vector[1]( + x, y, width, height, radius, in_t, kern_ptr + ) + out_t.store[width=4](Index(y, x, 0), res) + + elementwise[gpu_kernel, 1, target="gpu"](num_pixels, dctx) + dctx.synchronize() + + +@export("blurs_mojo_init") +def blurs_mojo_init( + ctx_out: UnsafePointer[Int, MutAnyOrigin], use_gpu: Int32 +) abi("C") -> None: + var gpu = use_gpu != 0 + var dctx_addr = 0 + if gpu: + try: + var d_ptr = alloc[DeviceContext](1) + d_ptr.unsafe_write(DeviceContext()) + dctx_addr = Int(d_ptr) + print("Mojo Blurs: GPU Context Initialized") + except e: + print("Mojo Blurs: GPU Init Error:", String(e)) + gpu = False + else: + print("Mojo Blurs: CPU Context Initialized") + var p = alloc[MojoCtx](1) + p[0].use_gpu = 1 if gpu else 0 + p[0].dctx_addr = dctx_addr + ctx_out[0] = Int(p) + + +@export("blurs_mojo_destroy") +def blurs_mojo_destroy(ctx_addr: Int) abi("C") -> None: + var p = UnsafePointer[MojoCtx, MutAnyOrigin](unsafe_from_address=ctx_addr) + if p[0].dctx_addr != 0: + var dctx_ptr = UnsafePointer[DeviceContext, MutAnyOrigin]( + unsafe_from_address=p[0].dctx_addr + ) + dctx_ptr.unsafe_deinit_pointee() + dctx_ptr.free() + p.free() + + +@export("blurs_mojo_convolve") +def blurs_mojo_convolve( + ctx_addr: Int, + in_addr: Int, + kern_addr: Int, + out_addr: Int, + width: Int32, + height: Int32, + radius: Int32, +) abi("C") -> None: + var ctx_p = UnsafePointer[MojoCtx, MutAnyOrigin]( + unsafe_from_address=ctx_addr + ) + var use_gpu = ctx_p[0].use_gpu != 0 + var dctx_addr = ctx_p[0].dctx_addr + + var kern_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=kern_addr + ) + var out_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=out_addr + ) + + var h = Int(height) + var w = Int(width) + var r = Int(radius) + var num_pixels = h * w + var k_size = (2 * r + 1) * (2 * r + 1) + + var rt = RuntimeLayout[IMAGE_LAYOUT].row_major( + IndexList[3](h, w, CHANNELS) + ) + + if use_gpu and dctx_addr != 0: + try: + var in_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=in_addr + ) + var dctx = UnsafePointer[DeviceContext, MutAnyOrigin]( + unsafe_from_address=dctx_addr + )[0] + var dev_in = dctx.enqueue_create_buffer[DTYPE](num_pixels * 4) + var dev_kern = dctx.enqueue_create_buffer[DTYPE](k_size) + var dev_out = dctx.enqueue_create_buffer[DTYPE](num_pixels * 4) + + dctx.enqueue_copy(dev_in, in_p) + dctx.enqueue_copy(dev_kern, kern_p) + + var in_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin]( + UnsafePointer[Float32, ImmutAnyOrigin]( + unsafe_from_address=Int(dev_in.unsafe_ptr()) + ), + rt, + ) + var out_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( + UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=Int(dev_out.unsafe_ptr()) + ), + rt, + ) + var kern_ptr_gpu = UnsafePointer[Float32, ImmutAnyOrigin]( + unsafe_from_address=Int(dev_kern.unsafe_ptr()) + ) + + _launch_convolve_gpu( + dctx, in_t, out_t, kern_ptr_gpu, w, h, r, num_pixels, + ) + + dctx.enqueue_copy(out_p, dev_out) + dctx.synchronize() + except e: + print("GPU Run Error (Convolve):", String(e)) + else: + var in_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin]( + UnsafePointer[Float32, ImmutAnyOrigin]( + unsafe_from_address=in_addr + ), + rt, + ) + var out_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( + out_p, + rt, + ) + var kern_ptr_cpu = UnsafePointer[Float32, ImmutAnyOrigin]( + unsafe_from_address=kern_addr + ) + + for y in range(h): + var cur_y = y + def row_fn[width: Int](x: Int) {mut}: + var res = apply_convolve_vector[width]( + x, cur_y, w, h, r, in_t, kern_ptr_cpu + ) + for i in range(width): + var pixel = SIMD[DType.float32, 4]( + res[i * 4], + res[i * 4 + 1], + res[i * 4 + 2], + res[i * 4 + 3], + ) + out_t.store[width=4](Index(cur_y, x + i, 0), pixel) + + vectorize[SIMD_WIDTH](w, row_fn) diff --git a/mojo/iop/sigmoid/kernels.mojo b/mojo/iop/sigmoid/kernels.mojo index c5b1a3d220..8bfeb61285 100644 --- a/mojo/iop/sigmoid/kernels.mojo +++ b/mojo/iop/sigmoid/kernels.mojo @@ -1,7 +1,7 @@ from std.math import isnan, sqrt, pow, max, min @always_inline -fn generalized_loglogistic_sigmoid_scalar( +def generalized_loglogistic_sigmoid_scalar( value: Float32, magnitude: Float32, paper_exp: Float32, @@ -19,7 +19,7 @@ fn generalized_loglogistic_sigmoid_scalar( return paper_response @always_inline -fn apply_sigmoid_rgb_ratio( +def apply_sigmoid_rgb_ratio( in_r: Float32, in_g: Float32, in_b: Float32, @@ -31,23 +31,22 @@ fn apply_sigmoid_rgb_ratio( film_power: Float32, paper_power: Float32, ) -> SIMD[DType.float32, 4]: - # Desaturate negative values - var avg = max((in_r + in_g + in_b) / 3.0, Float32(0.0)) + var avg = max((in_r + in_g + in_b) / Float32(3.0), Float32(0.0)) var min_v = min(min(in_r, in_g), in_b) var sat = Float32(1.0) - if min_v < 0.0: + if min_v < Float32(0.0): sat = -avg / (min_v - avg) var p_r = avg + sat * (in_r - avg) var p_g = avg + sat * (in_g - avg) var p_b = avg + sat * (in_b - avg) - var luma = (p_r + p_g + p_b) / 3.0 + var luma = (p_r + p_g + p_b) / Float32(3.0) var mapped_luma = generalized_loglogistic_sigmoid_scalar( luma, white_target, paper_exp, film_fog, film_power, paper_power ) - if luma > 1e-9: + if luma > Float32(1e-9): var scale = mapped_luma / luma p_r *= scale p_g *= scale @@ -64,12 +63,10 @@ fn apply_sigmoid_rgb_ratio( var d_black = (black_target - mapped_luma) / (p_min - mapped_luma - eps) var db_vs_chroma = min(d_white, d_black) var cvm_border = (mapped_luma - p_min) / (mapped_luma + eps) - var p_chr_adj = 1.0 / (cvm_border * db_vs_chroma + eps) - var h_chr = ( - 2.0 * cvm_border / (1.0 - cvm_border * cvm_border + eps) - ) * p_chr_adj - var h_z = sqrt(h_chr * h_chr + 1.0) - var chroma_f = h_chr / (1.0 + h_z) * db_vs_chroma + var p_chr_adj = Float32(1.0) / (cvm_border * db_vs_chroma + eps) + var h_chr = (Float32(2.0) * cvm_border / (Float32(1.0) - cvm_border * cvm_border + eps)) * p_chr_adj + var h_z = sqrt(h_chr * h_chr + Float32(1.0)) + var chroma_f = h_chr / (Float32(1.0) + h_z) * db_vs_chroma return SIMD[DType.float32, 4]( mapped_luma + chroma_f * (p_r - mapped_luma), @@ -79,7 +76,7 @@ fn apply_sigmoid_rgb_ratio( ) @always_inline -fn apply_sigmoid_per_channel( +def apply_sigmoid_per_channel( in_r: Float32, in_g: Float32, in_b: Float32, @@ -94,47 +91,23 @@ fn apply_sigmoid_per_channel( base_to_rendering: SIMD[DType.float32, 16], rendering_to_pipe: SIMD[DType.float32, 16], ) -> SIMD[DType.float32, 4]: - # 1. Transform to base space - var i_r = ( - pipe_to_base[0] * in_r + pipe_to_base[1] * in_g + pipe_to_base[2] * in_b - ) - var i_g = ( - pipe_to_base[4] * in_r + pipe_to_base[5] * in_g + pipe_to_base[6] * in_b - ) - var i_b = ( - pipe_to_base[8] * in_r - + pipe_to_base[9] * in_g - + pipe_to_base[10] * in_b - ) + var i_r = pipe_to_base[0] * in_r + pipe_to_base[1] * in_g + pipe_to_base[2] * in_b + var i_g = pipe_to_base[4] * in_r + pipe_to_base[5] * in_g + pipe_to_base[6] * in_b + var i_b = pipe_to_base[8] * in_r + pipe_to_base[9] * in_g + pipe_to_base[10] * in_b - # 2. Desaturate negative - var avg = max((i_r + i_g + i_b) / 3.0, Float32(0.0)) + var avg = max((i_r + i_g + i_b) / Float32(3.0), Float32(0.0)) var min_v = min(min(i_r, i_g), i_b) var sat = Float32(1.0) - if min_v < 0.0: + if min_v < Float32(0.0): sat = -avg / (min_v - avg) i_r = avg + sat * (i_r - avg) i_g = avg + sat * (i_g - avg) i_b = avg + sat * (i_b - avg) - # 3. Transform to rendering space - var r_r = ( - base_to_rendering[0] * i_r - + base_to_rendering[1] * i_g - + base_to_rendering[2] * i_b - ) - var r_g = ( - base_to_rendering[4] * i_r - + base_to_rendering[5] * i_g - + base_to_rendering[6] * i_b - ) - var r_b = ( - base_to_rendering[8] * i_r - + base_to_rendering[9] * i_g - + base_to_rendering[10] * i_b - ) + var r_r = base_to_rendering[0] * i_r + base_to_rendering[1] * i_g + base_to_rendering[2] * i_b + var r_g = base_to_rendering[4] * i_r + base_to_rendering[5] * i_g + base_to_rendering[6] * i_b + var r_b = base_to_rendering[8] * i_r + base_to_rendering[9] * i_g + base_to_rendering[10] * i_b - # 4. Per-channel sigmoid curves var pc_r = generalized_loglogistic_sigmoid_scalar( r_r, white_target, paper_exp, film_fog, contrast_power, skew_power ) @@ -145,7 +118,6 @@ fn apply_sigmoid_per_channel( r_b, white_target, paper_exp, film_fog, contrast_power, skew_power ) - # 5. Preserve hue & energy var p_min: Float32 var p_mid: Float32 var p_max: Float32 @@ -154,60 +126,36 @@ fn apply_sigmoid_per_channel( var pc_max: Float32 if r_r >= r_g: - if r_g >= r_b: # R G B - p_max = r_r - p_mid = r_g - p_min = r_b - pc_max = pc_r - pc_mid = pc_g - pc_min = pc_b - elif r_b >= r_r: # B R G - p_max = r_b - p_mid = r_r - p_min = r_g - pc_max = pc_b - pc_mid = pc_r - pc_min = pc_g - else: # R B G - p_max = r_r - p_mid = r_b - p_min = r_g - pc_max = pc_r - pc_mid = pc_b - pc_min = pc_g + if r_g >= r_b: + p_max = r_r; p_mid = r_g; p_min = r_b + pc_max = pc_r; pc_mid = pc_g; pc_min = pc_b + elif r_b >= r_r: + p_max = r_b; p_mid = r_r; p_min = r_g + pc_max = pc_b; pc_mid = pc_r; pc_min = pc_g + else: + p_max = r_r; p_mid = r_b; p_min = r_g + pc_max = pc_r; pc_mid = pc_b; pc_min = pc_g else: - if r_r >= r_b: # G R B - p_max = r_g - p_mid = r_r - p_min = r_b - pc_max = pc_g - pc_mid = pc_r - pc_min = pc_b - elif r_b >= r_g: # B G R - p_max = r_b - p_mid = r_g - p_min = r_r - pc_max = pc_b - pc_mid = pc_g - pc_min = pc_r - else: # G B R - p_max = r_g - p_mid = r_b - p_min = r_r - pc_max = pc_g - pc_mid = pc_b - pc_min = pc_r + if r_r >= r_b: + p_max = r_g; p_mid = r_r; p_min = r_b + pc_max = pc_g; pc_mid = pc_r; pc_min = pc_b + elif r_b >= r_g: + p_max = r_b; p_mid = r_g; p_min = r_r + pc_max = pc_b; pc_mid = pc_g; pc_min = pc_r + else: + p_max = r_g; p_mid = r_b; p_min = r_r + pc_max = pc_g; pc_mid = pc_b; pc_min = pc_r var chroma = p_max - p_min var midscale = Float32(0.0) - if chroma != 0.0: + if chroma != Float32(0.0): midscale = (p_mid - p_min) / chroma var f_hc = pc_min + (pc_max - pc_min) * midscale - var n_mid = (1.0 - hue_preservation) * pc_mid + hue_preservation * f_hc + var n_mid = (Float32(1.0) - hue_preservation) * pc_mid + hue_preservation * f_hc - var blend = 2.0 * p_min / (p_min + p_mid + 1e-9) - var target = blend * (pc_r + pc_g + pc_b) + (1.0 - blend) * ( + var blend = Float32(2.0) * p_min / (p_min + p_mid + Float32(1e-9)) + var target = blend * (pc_r + pc_g + pc_b) + (Float32(1.0) - blend) * ( pc_min + n_mid + pc_max ) @@ -216,18 +164,18 @@ fn apply_sigmoid_per_channel( var res_max: Float32 if n_mid <= pc_mid: res_mid = ( - (1.0 - hue_preservation) * pc_mid + (Float32(1.0) - hue_preservation) * pc_mid + hue_preservation - * (midscale * pc_max + (1.0 - midscale) * (target - pc_max)) - ) / (1.0 + hue_preservation * (1.0 - midscale)) + * (midscale * pc_max + (Float32(1.0) - midscale) * (target - pc_max)) + ) / (Float32(1.0) + hue_preservation * (Float32(1.0) - midscale)) res_min = target - pc_max - res_mid res_max = pc_max else: res_mid = ( - (1.0 - hue_preservation) * pc_mid + (Float32(1.0) - hue_preservation) * pc_mid + hue_preservation - * (pc_min * (1.0 - midscale) + midscale * (target - pc_min)) - ) / (1.0 + hue_preservation * midscale) + * (pc_min * (Float32(1.0) - midscale) + midscale * (target - pc_min)) + ) / (Float32(1.0) + hue_preservation * midscale) res_min = pc_min res_max = target - pc_min - res_mid @@ -235,47 +183,22 @@ fn apply_sigmoid_per_channel( var res_g: Float32 var res_b: Float32 if r_r >= r_g: - if r_g >= r_b: # R G B - res_r = res_max - res_g = res_mid - res_b = res_min - elif r_b >= r_r: # B R G - res_b = res_max - res_r = res_mid - res_g = res_min - else: # R B G - res_r = res_max - res_b = res_mid - res_g = res_min + if r_g >= r_b: + res_r = res_max; res_g = res_mid; res_b = res_min + elif r_b >= r_r: + res_b = res_max; res_r = res_mid; res_g = res_min + else: + res_r = res_max; res_b = res_mid; res_g = res_min else: - if r_r >= r_b: # G R B - res_g = res_max - res_r = res_mid - res_b = res_min - elif r_b >= r_g: # B G R - res_b = res_max - res_g = res_mid - res_r = res_min - else: # G B R - res_g = res_max - res_b = res_mid - res_r = res_min - - # 6. Transform to pipe space - var out_r = ( - rendering_to_pipe[0] * res_r - + rendering_to_pipe[1] * res_g - + rendering_to_pipe[2] * res_b - ) - var out_g = ( - rendering_to_pipe[4] * res_r - + rendering_to_pipe[5] * res_g - + rendering_to_pipe[6] * res_b - ) - var out_b = ( - rendering_to_pipe[8] * res_r - + rendering_to_pipe[9] * res_g - + rendering_to_pipe[10] * res_b - ) + if r_r >= r_b: + res_g = res_max; res_r = res_mid; res_b = res_min + elif r_b >= r_g: + res_b = res_max; res_g = res_mid; res_r = res_min + else: + res_g = res_max; res_b = res_mid; res_r = res_min + + var out_r = rendering_to_pipe[0] * res_r + rendering_to_pipe[1] * res_g + rendering_to_pipe[2] * res_b + var out_g = rendering_to_pipe[4] * res_r + rendering_to_pipe[5] * res_g + rendering_to_pipe[6] * res_b + var out_b = rendering_to_pipe[8] * res_r + rendering_to_pipe[9] * res_g + rendering_to_pipe[10] * res_b return SIMD[DType.float32, 4](out_r, out_g, out_b, in_a) diff --git a/mojo/iop/sigmoid/lib.mojo b/mojo/iop/sigmoid/lib.mojo index e0bcb90375..3b9191e0f6 100644 --- a/mojo/iop/sigmoid/lib.mojo +++ b/mojo/iop/sigmoid/lib.mojo @@ -1,11 +1,11 @@ from std.gpu.host import DeviceContext from layout import Layout, LayoutTensor, UNKNOWN_VALUE -from layout.runtime_layout import RuntimeLayout -from std.utils import Index, IndexList +from layout.runtime_layout import RuntimeLayout, IndexList +from layout.coord import Coord +from std.utils import Index from std.algorithm.functional import elementwise -from std.gpu.host.compile import get_gpu_target -from std.memory.unsafe_pointer import alloc, UnsafePointer -from std.sys import simd_width_of +from std.memory import alloc +from std.memory.unsafe_pointer import UnsafePointer from iop.sigmoid.kernels import ( apply_sigmoid_rgb_ratio, apply_sigmoid_per_channel, @@ -14,100 +14,76 @@ from iop.sigmoid.kernels import ( comptime CHANNELS = 4 comptime IMAGE_LAYOUT = Layout.row_major(UNKNOWN_VALUE, UNKNOWN_VALUE, CHANNELS) comptime DTYPE = DType.float32 -comptime SIMD_WIDTH = simd_width_of[DTYPE, target=get_gpu_target()]() struct MojoCtx: var use_gpu: Int var dctx_addr: Int - fn __init__(out self, use_gpu: Int, dctx_addr: Int): + def __init__(out self, use_gpu: Int, dctx_addr: Int): self.use_gpu = use_gpu self.dctx_addr = dctx_addr -struct CParamsView: - var p: UnsafePointer[Float32, MutAnyOrigin] - - fn __init__(out self, p: Int): - self.p = UnsafePointer[Float32, MutAnyOrigin](unsafe_from_address=p) - - # In SigmoidMojoParams, each scalar is a float[4] array - fn white_target(self) -> Float32: - return self.p[0] - - fn black_target(self) -> Float32: - return self.p[4] - - fn paper_exposure(self) -> Float32: - return self.p[8] - - fn film_fog(self) -> Float32: - return self.p[12] - - fn film_power(self) -> Float32: - return self.p[16] - - fn paper_power(self) -> Float32: - return self.p[20] - - fn hue_preservation(self) -> Float32: - return self.p[32] # hue_preservation[4] at index 32 - - fn pipe_to_base(self) -> SIMD[DType.float32, 16]: - var m = SIMD[DType.float32, 16]() - for i in range(16): - m[i] = self.p[36 + i] - return m - - fn base_to_rendering(self) -> SIMD[DType.float32, 16]: - var m = SIMD[DType.float32, 16]() - for i in range(16): - m[i] = self.p[52 + i] - return m - - fn rendering_to_pipe(self) -> SIMD[DType.float32, 16]: - var m = SIMD[DType.float32, 16]() +struct CParams: + var wt: Float32 + var bt: Float32 + var pe: Float32 + var ff: Float32 + var fp: Float32 + var pp: Float32 + var hp: Float32 + var ptb: SIMD[DType.float32, 16] + var btr: SIMD[DType.float32, 16] + var rtp: SIMD[DType.float32, 16] + + def __init__(out self, addr: Int): + var p = UnsafePointer[Float32, MutAnyOrigin](unsafe_from_address=addr) + self.wt = p[0] + self.bt = p[4] + self.pe = p[8] + self.ff = p[12] + self.fp = p[16] + self.pp = p[20] + self.hp = p[32] + var m_ptb = SIMD[DType.float32, 16]() + var m_btr = SIMD[DType.float32, 16]() + var m_rtp = SIMD[DType.float32, 16]() for i in range(16): - m[i] = self.p[68 + i] - return m - - -# ========================================================================= -# INTERNAL GPU LAUNCHERS (ZERO-POINTER PARAMETERS) -# ========================================================================= + m_ptb[i] = p[36 + i] + m_btr[i] = p[52 + i] + m_rtp[i] = p[68 + i] + self.ptb = m_ptb + self.btr = m_btr + self.rtp = m_rtp -fn _launch_rgb_ratio_gpu( +def _launch_rgb_ratio_gpu( dctx: DeviceContext, - dev_in_ptr: Int, - dev_out_ptr: Int, + in_t: LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin], + out_t: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], wt: Float32, bt: Float32, pe: Float32, ff: Float32, fp: Float32, pp: Float32, + img_w: Int, + img_h: Int, num_pixels: Int, ) raises: @parameter @always_inline - fn gpu_kernel[ - sw: Int, rank: Int, align: Int - ](indices: IndexList[rank]) capturing -> None: - var idx = indices[0] * 4 - var pin = UnsafePointer[Float32, ImmutAnyOrigin]( - unsafe_from_address=dev_in_ptr - ) - var pout = UnsafePointer[Float32, MutAnyOrigin]( - unsafe_from_address=dev_out_ptr - ) - + def gpu_kernel[simd_width: Int, alignment: Int](coord: Coord) capturing -> None: + var px_idx = Int(coord[0].value()) + var y = px_idx // img_w + var x = px_idx % img_w + var pix = in_t.load[width=4](Index(y, x, 0)) var r = apply_sigmoid_rgb_ratio( - pin[idx], - pin[idx + 1], - pin[idx + 2], - pin[idx + 3], + pix[0], + pix[1], + pix[2], + pix[3], wt, bt, pe, @@ -115,19 +91,16 @@ fn _launch_rgb_ratio_gpu( fp, pp, ) - pout[idx] = r[0] - pout[idx + 1] = r[1] - pout[idx + 2] = r[2] - pout[idx + 3] = r[3] + out_t.store[width=4](Index(y, x, 0), r) - elementwise[gpu_kernel, SIMD_WIDTH, target="gpu"](num_pixels, dctx) + elementwise[gpu_kernel, 1, target="gpu"](num_pixels, dctx) dctx.synchronize() -fn _launch_per_channel_gpu( +def _launch_per_channel_gpu( dctx: DeviceContext, - dev_in_ptr: Int, - dev_out_ptr: Int, + in_t: LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin], + out_t: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], wt: Float32, pe: Float32, ff: Float32, @@ -137,26 +110,22 @@ fn _launch_per_channel_gpu( kptb: SIMD[DType.float32, 16], kbtr: SIMD[DType.float32, 16], krtp: SIMD[DType.float32, 16], + img_w: Int, + img_h: Int, num_pixels: Int, ) raises: @parameter @always_inline - fn gpu_kernel[ - sw: Int, rank: Int, align: Int - ](indices: IndexList[rank]) capturing -> None: - var idx = indices[0] * 4 - var pin = UnsafePointer[Float32, ImmutAnyOrigin]( - unsafe_from_address=dev_in_ptr - ) - var pout = UnsafePointer[Float32, MutAnyOrigin]( - unsafe_from_address=dev_out_ptr - ) - + def gpu_kernel[simd_width: Int, alignment: Int](coord: Coord) capturing -> None: + var px_idx = Int(coord[0].value()) + var y = px_idx // img_w + var x = px_idx % img_w + var pix = in_t.load[width=4](Index(y, x, 0)) var r = apply_sigmoid_per_channel( - pin[idx], - pin[idx + 1], - pin[idx + 2], - pin[idx + 3], + pix[0], + pix[1], + pix[2], + pix[3], wt, pe, ff, @@ -167,28 +136,20 @@ fn _launch_per_channel_gpu( kbtr, krtp, ) - pout[idx] = r[0] - pout[idx + 1] = r[1] - pout[idx + 2] = r[2] - pout[idx + 3] = r[3] + out_t.store[width=4](Index(y, x, 0), r) - elementwise[gpu_kernel, SIMD_WIDTH, target="gpu"](num_pixels, dctx) + elementwise[gpu_kernel, 1, target="gpu"](num_pixels, dctx) dctx.synchronize() -# ========================================================================= -# EXPORTED INTERFACE -# ========================================================================= - - -@export -fn sigmoid_mojo_init(ctx_out: UnsafePointer[Int, MutAnyOrigin], use_gpu: Int32): +@export("sigmoid_mojo_init") +def sigmoid_mojo_init(ctx_out: UnsafePointer[Int, MutAnyOrigin], use_gpu: Int32) abi("C") -> None: var gpu = use_gpu != 0 var dctx_addr = 0 if gpu: try: var d_ptr = alloc[DeviceContext](1) - d_ptr.init_pointee_move(DeviceContext()) + d_ptr.unsafe_write(DeviceContext()) dctx_addr = Int(d_ptr) print("Mojo: GPU Context Initialized Successfully") except e: @@ -202,37 +163,90 @@ fn sigmoid_mojo_init(ctx_out: UnsafePointer[Int, MutAnyOrigin], use_gpu: Int32): ctx_out[0] = Int(p) -@export -fn sigmoid_mojo_destroy(ctx_addr: Int): +@export("sigmoid_mojo_destroy") +def sigmoid_mojo_destroy(ctx_addr: Int) abi("C") -> None: var p = UnsafePointer[MojoCtx, MutAnyOrigin](unsafe_from_address=ctx_addr) if p[0].dctx_addr != 0: var dctx_ptr = UnsafePointer[DeviceContext, MutAnyOrigin]( unsafe_from_address=p[0].dctx_addr ) - dctx_ptr.destroy_pointee() + dctx_ptr.unsafe_deinit_pointee() dctx_ptr.free() p.free() -@export -fn sigmoid_mojo_rgb_ratio( +def _run_cpu_rgb_ratio( + in_t: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], + out_t: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], + wt: Float32, + bt: Float32, + pe: Float32, + ff: Float32, + fp: Float32, + pp: Float32, + width: Int, + height: Int, + num_pixels: Int, +): + for i in range(num_pixels): + var px = in_t.load[width=4](Index(i // width, i % width, 0)) + var r = apply_sigmoid_rgb_ratio( + px[0], px[1], px[2], px[3], wt, bt, pe, ff, fp, pp + ) + out_t.store[width=4](Index(i // width, i % width, 0), r) + + +def _run_cpu_per_channel( + in_t: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], + out_t: LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin], + wt: Float32, + pe: Float32, + ff: Float32, + fp: Float32, + pp: Float32, + hp: Float32, + ptb: SIMD[DType.float32, 16], + btr: SIMD[DType.float32, 16], + rtp: SIMD[DType.float32, 16], + width: Int, + height: Int, + num_pixels: Int, +): + for i in range(num_pixels): + var px = in_t.load[width=4](Index(i // width, i % width, 0)) + var r = apply_sigmoid_per_channel( + px[0], + px[1], + px[2], + px[3], + wt, + pe, + ff, + fp, + pp, + hp, + ptb, + btr, + rtp, + ) + out_t.store[width=4](Index(i // width, i % width, 0), r) + + +@export("sigmoid_mojo_rgb_ratio") +def sigmoid_mojo_rgb_ratio( ctx_addr: Int, in_addr: Int, out_addr: Int, width: Int32, height: Int32, p_addr: Int, -): +) abi("C") -> None: var ctx_p = UnsafePointer[MojoCtx, MutAnyOrigin]( unsafe_from_address=ctx_addr ) var use_gpu = ctx_p[0].use_gpu != 0 var dctx_addr = ctx_p[0].dctx_addr - var params = CParamsView(p_addr) - var in_p = UnsafePointer[Float32, MutAnyOrigin](unsafe_from_address=in_addr) - var out_p = UnsafePointer[Float32, MutAnyOrigin]( - unsafe_from_address=out_addr - ) + var params = CParams(p_addr) var h = Int(height) var w = Int(width) var num_pixels = h * w @@ -244,21 +258,45 @@ fn sigmoid_mojo_rgb_ratio( )[0] var dev_in = dctx.enqueue_create_buffer[DTYPE](num_pixels * 4) var dev_out = dctx.enqueue_create_buffer[DTYPE](num_pixels * 4) + var in_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=in_addr + ) dctx.enqueue_copy(dev_in, in_p) + var rt_gpu = RuntimeLayout[IMAGE_LAYOUT].row_major( + IndexList[3](h, w, CHANNELS) + ) + var in_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin]( + UnsafePointer[Float32, ImmutAnyOrigin]( + unsafe_from_address=Int(dev_in.unsafe_ptr()) + ), + rt_gpu, + ) + var out_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( + UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=Int(dev_out.unsafe_ptr()) + ), + rt_gpu, + ) + _launch_rgb_ratio_gpu( dctx, - Int(dev_in.unsafe_ptr()), - Int(dev_out.unsafe_ptr()), - params.white_target(), - params.black_target(), - params.paper_exposure(), - params.film_fog(), - params.film_power(), - params.paper_power(), + in_t, + out_t, + params.wt, + params.bt, + params.pe, + params.ff, + params.fp, + params.pp, + w, + h, num_pixels, ) + var out_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=out_addr + ) dctx.enqueue_copy(out_p, dev_out) dctx.synchronize() except e: @@ -267,41 +305,45 @@ fn sigmoid_mojo_rgb_ratio( var rt = RuntimeLayout[IMAGE_LAYOUT].row_major( IndexList[3](h, w, CHANNELS) ) + var in_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=in_addr + ) + var out_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=out_addr + ) var in_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin](in_p, rt) var out_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin](out_p, rt) - var wt = params.white_target() - var bt = params.black_target() - var pe = params.paper_exposure() - var ff = params.film_fog() - var fp = params.film_power() - var pp = params.paper_power() - for i in range(num_pixels): - var px = in_t.load[width=4](Index(i // w, i % w, 0)) - var r = apply_sigmoid_rgb_ratio( - px[0], px[1], px[2], px[3], wt, bt, pe, ff, fp, pp - ) - out_t.store[width=4](Index(i // w, i % w, 0), r) + + _run_cpu_rgb_ratio( + in_t, + out_t, + params.wt, + params.bt, + params.pe, + params.ff, + params.fp, + params.pp, + w, + h, + num_pixels, + ) -@export -fn sigmoid_mojo_per_channel( +@export("sigmoid_mojo_per_channel") +def sigmoid_mojo_per_channel( ctx_addr: Int, in_addr: Int, out_addr: Int, width: Int32, height: Int32, p_addr: Int, -): +) abi("C") -> None: var ctx_p = UnsafePointer[MojoCtx, MutAnyOrigin]( unsafe_from_address=ctx_addr ) var use_gpu = ctx_p[0].use_gpu != 0 var dctx_addr = ctx_p[0].dctx_addr - var params = CParamsView(p_addr) - var in_p = UnsafePointer[Float32, MutAnyOrigin](unsafe_from_address=in_addr) - var out_p = UnsafePointer[Float32, MutAnyOrigin]( - unsafe_from_address=out_addr - ) + var params = CParams(p_addr) var h = Int(height) var w = Int(width) var num_pixels = h * w @@ -313,24 +355,48 @@ fn sigmoid_mojo_per_channel( )[0] var dev_in = dctx.enqueue_create_buffer[DTYPE](num_pixels * 4) var dev_out = dctx.enqueue_create_buffer[DTYPE](num_pixels * 4) + var in_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=in_addr + ) dctx.enqueue_copy(dev_in, in_p) + var rt_gpu = RuntimeLayout[IMAGE_LAYOUT].row_major( + IndexList[3](h, w, CHANNELS) + ) + var in_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, ImmutAnyOrigin]( + UnsafePointer[Float32, ImmutAnyOrigin]( + unsafe_from_address=Int(dev_in.unsafe_ptr()) + ), + rt_gpu, + ) + var out_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin]( + UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=Int(dev_out.unsafe_ptr()) + ), + rt_gpu, + ) + _launch_per_channel_gpu( dctx, - Int(dev_in.unsafe_ptr()), - Int(dev_out.unsafe_ptr()), - params.white_target(), - params.paper_exposure(), - params.film_fog(), - params.film_power(), - params.paper_power(), - params.hue_preservation(), - params.pipe_to_base(), - params.base_to_rendering(), - params.rendering_to_pipe(), + in_t, + out_t, + params.wt, + params.pe, + params.ff, + params.fp, + params.pp, + params.hp, + params.ptb, + params.btr, + params.rtp, + w, + h, num_pixels, ) + var out_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=out_addr + ) dctx.enqueue_copy(out_p, dev_out) dctx.synchronize() except e: @@ -339,32 +405,28 @@ fn sigmoid_mojo_per_channel( var rt = RuntimeLayout[IMAGE_LAYOUT].row_major( IndexList[3](h, w, CHANNELS) ) + var in_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=in_addr + ) + var out_p = UnsafePointer[Float32, MutAnyOrigin]( + unsafe_from_address=out_addr + ) var in_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin](in_p, rt) var out_t = LayoutTensor[DTYPE, IMAGE_LAYOUT, MutAnyOrigin](out_p, rt) - var wt = params.white_target() - var pe = params.paper_exposure() - var ff = params.film_fog() - var fp = params.film_power() - var pp = params.paper_power() - var hp = params.hue_preservation() - var ptb = params.pipe_to_base() - var btr = params.base_to_rendering() - var rtp = params.rendering_to_pipe() - for i in range(num_pixels): - var px = in_t.load[width=4](Index(i // w, i % w, 0)) - var r = apply_sigmoid_per_channel( - px[0], - px[1], - px[2], - px[3], - wt, - pe, - ff, - fp, - pp, - hp, - ptb, - btr, - rtp, - ) - out_t.store[width=4](Index(i // w, i % w, 0), r) + + _run_cpu_per_channel( + in_t, + out_t, + params.wt, + params.pe, + params.ff, + params.fp, + params.pp, + params.hp, + params.ptb, + params.btr, + params.rtp, + w, + h, + num_pixels, + ) diff --git a/mojo/pixi.lock b/mojo/pixi.lock index c8ff562623..f4dd8df35b 100644 --- a/mojo/pixi.lock +++ b/mojo/pixi.lock @@ -1,80 +1,87 @@ -version: 6 +version: 7 +platforms: +- name: linux-64 + virtual-packages: + - __unix=0=0 + - __linux=4.18 + - __glibc=2.28 + - __archspec=0=x86_64 environments: default: channels: - url: https://conda.modular.com/max-nightly/ - url: https://conda.anaconda.org/conda-forge/ - options: - pypi-prerelease-mode: if-necessary-or-explicit packages: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.3-py314hd8ed1ab_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-h54a6638_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-ha1258a1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-hbde042b_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.46.1-default_hbd61a6d_102.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-8_h4a7cf45_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-8_h0358290_openblas.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.4-hecca717_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.1-hecca717_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_20.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_20.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_20.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_20.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-8_h47877c9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.21-h280c20c_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.52.0-hf4e2dac_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.modular.com/max-nightly/linux-64/max-26.3.0.dev2026031105-3.14release.conda - - conda: https://conda.modular.com/max-nightly/linux-64/max-core-26.3.0.dev2026031105-release.conda - - conda: https://conda.modular.com/max-nightly/noarch/mblack-26.3.0.dev2026031105-release.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.33-pthreads_h94d23a6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.22-h280c20c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.4-hf4e2dac_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_20.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.2-h5347b49_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/msgspec-0.21.1-py314h5bd0f2a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.5.1-py314h2b28147_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.3-h35e630c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py314h0f05182_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.6-habeac84_101_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hda471dd_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd70dff1_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.7-py314h5bd0f2a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h09e67af_11.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.7.22-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.4.2-pyhc90fa1f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.6-py314hd8ed1ab_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.2.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - - conda: https://conda.modular.com/max-nightly/linux-64/mojo-0.26.3.0.dev2026031105-release.conda - - conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-0.26.3.0.dev2026031105-release.conda - - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-0.26.3.0.dev2026031105-release.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py314h2b28147_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.4-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.2-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.11.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.3-h4df99d1_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.6-h4df99d1_101.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py314h67df5f8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hda471dd_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.3.3-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-15.0.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py314h5bd0f2a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h41580af_10.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/taskgroup-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.15.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026c-h151e31d_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.0-pyhcf101f3_0.conda + - conda: https://conda.modular.com/max-nightly/linux-64/max-26.5.0.dev2026072505-3.14release.conda + - conda: https://conda.modular.com/max-nightly/linux-64/max-core-26.5.0.dev2026072505-release.conda + - conda: https://conda.modular.com/max-nightly/linux-64/mojo-1.0.0b3.dev2026072505-release.conda + - conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-1.0.0b3.dev2026072505-release.conda + - conda: https://conda.modular.com/max-nightly/noarch/mblack-26.5.0.dev2026072505-release.conda + - conda: https://conda.modular.com/max-nightly/noarch/mojo-python-1.0.0b3.dev2026072505-release.conda packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda build_number: 20 @@ -87,18 +94,11 @@ packages: - openmp_impl <0.0a0 license: BSD-3-Clause license_family: BSD + run_exports: + strong: + - _openmp_mutex >=4.5 size: 28948 timestamp: 1770939786096 -- conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda - sha256: a3967b937b9abf0f2a99f3173fa4630293979bd1644709d89580e7c62a544661 - md5: aaa2a381ccc56eac91d63b6c1240312f - depends: - - cpython - - python-gil - license: MIT - license_family: MIT - size: 8191 - timestamp: 1744137672556 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_9.conda sha256: 0b75d45f0bba3e95dc693336fa51f40ea28c980131fec438afb7ce6118ed05f6 md5: d2ffd7602c02f2b316fd921d39876885 @@ -107,90 +107,25 @@ packages: - libgcc >=14 license: bzip2-1.0.6 license_family: BSD + run_exports: + weak: + - bzip2 >=1.0.8,<2.0a0 size: 260182 timestamp: 1771350215188 -- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.2.25-hbd8a1cb_0.conda - sha256: 67cc7101b36421c5913a1687ef1b99f85b5d6868da3abbf6ec1a4181e79782fc - md5: 4492fd26db29495f0ba23f146cd5638d +- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-h54a6638_2.conda + sha256: d7c260b7e1cf22ce04d6ba8a86eabf4e6c50bc96a5c27fe2ecb32298af3e88eb + md5: 4ef4b977bb216a3001a3334696a80850 depends: - - __unix - license: ISC - size: 147413 - timestamp: 1772006283803 -- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda - sha256: 38cfe1ee75b21a8361c8824f5544c3866f303af1762693a178266d7f198e8715 - md5: ea8a6c3256897cc31263de9f455e25d9 - depends: - - python >=3.10 - - __unix - - python - license: BSD-3-Clause - license_family: BSD - size: 97676 - timestamp: 1764518652276 -- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.3-py314hd8ed1ab_101.conda - noarch: generic - sha256: 91b06300879df746214f7363d6c27c2489c80732e46a369eb2afc234bcafb44c - md5: 3bb89e4f795e5414addaa531d6b1500a - depends: - - python >=3.14,<3.15.0a0 - - python_abi * *_cp314 - license: Python-2.0 - size: 50078 - timestamp: 1770674447292 -- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda - sha256: 142a722072fa96cf16ff98eaaf641f54ab84744af81754c292cb81e0881c0329 - md5: 186a18e3ba246eccfc7cff00cd19a870 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - libstdcxx >=14 + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 license: MIT license_family: MIT - size: 12728445 - timestamp: 1767969922681 -- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda - sha256: c18ab120a0613ada4391b15981d86ff777b5690ca461ea7e9e49531e8f374745 - md5: 63ccfdc3a3ce25b027b8767eb722fca8 - depends: - - python >=3.9 - - zipp >=3.20 - - python - license: Apache-2.0 - license_family: APACHE - size: 34641 - timestamp: 1747934053147 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda - sha256: 19d8bd5bb2fde910ec59e081eeb59529491995ce0d653a5209366611023a0b3a - md5: 4ebae00eae9705b0c3d6d1018a81d047 - depends: - - importlib-metadata >=4.8.3 - - jupyter_core >=4.12,!=5.0.* - - python >=3.9 - - python-dateutil >=2.8.2 - - pyzmq >=23.0 - - tornado >=6.2 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - size: 106342 - timestamp: 1733441040958 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - sha256: 1d34b80e5bfcd5323f104dbf99a2aafc0e5d823019d626d0dce5d3d356a2a52a - md5: b38fe4e78ee75def7e599843ef4c1ab0 - depends: - - __unix - - python - - platformdirs >=2.5 - - python >=3.10 - - traitlets >=5.3 - - python - constrains: - - pywin32 >=300 - license: BSD-3-Clause - license_family: BSD - size: 65503 - timestamp: 1760643864586 + run_exports: + weak: + - icu >=78.3,<79.0a0 + size: 14455340 + timestamp: 1784916378180 - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda sha256: 0960d06048a7185d3542d850986d807c6e37ca2e644342dd0c72feefcf26c2a4 md5: b38117a3c920364aff79f870c984b4a3 @@ -198,11 +133,14 @@ packages: - __glibc >=2.17,<3.0.a0 - libgcc >=13 license: LGPL-2.1-or-later + run_exports: + weak: + - keyutils >=1.6.3,<2.0a0 size: 134088 timestamp: 1754905959823 -- conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-ha1258a1_0.conda - sha256: 3e307628ca3527448dd1cb14ad7bb9d04d1d28c7d4c5f97ba196ae984571dd25 - md5: fb53fb07ce46a575c5d004bbc96032c2 +- conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-hbde042b_1.conda + sha256: 9b07046870772f28740e3f6149f09ff222843733087a33c5540b169c6289652d + md5: 54157a1c8c0bb70f62dd0b17fba7e7f2 depends: - __glibc >=2.17,<3.0.a0 - keyutils >=1.6.3,<2.0a0 @@ -210,54 +148,64 @@ packages: - libedit >=3.1.20250104,<4.0a0 - libgcc >=14 - libstdcxx >=14 - - openssl >=3.5.5,<4.0a0 + - openssl >=3.5.7,<4.0a0 license: MIT license_family: MIT - size: 1386730 - timestamp: 1769769569681 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45.1-default_hbd61a6d_101.conda - sha256: 565941ac1f8b0d2f2e8f02827cbca648f4d18cd461afc31f15604cd291b5c5f3 - md5: 12bd9a3f089ee6c9266a37dab82afabd + run_exports: + weak: + - krb5 >=1.22.2,<1.23.0a0 + size: 1388990 + timestamp: 1781859420533 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.46.1-default_hbd61a6d_102.conda + sha256: 27d83f1188cd19bcb7754a078b3fa7f4cfb8527f8eb2fde54dd01fc529d1adec + md5: 449500f2c089da11c40f5c21312e3e07 depends: - __glibc >=2.17,<3.0.a0 - zstd >=1.5.7,<1.6.0a0 constrains: - - binutils_impl_linux-64 2.45.1 + - binutils_impl_linux-64 2.46.1 license: GPL-3.0-only license_family: GPL - size: 725507 - timestamp: 1770267139900 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda - build_number: 5 - sha256: 18c72545080b86739352482ba14ba2c4815e19e26a7417ca21a95b76ec8da24c - md5: c160954f7418d7b6e87eaf05a8913fa9 - depends: - - libopenblas >=0.3.30,<0.3.31.0a0 - - libopenblas >=0.3.30,<1.0a0 + run_exports: {} + size: 745303 + timestamp: 1784214507189 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-8_h4a7cf45_openblas.conda + build_number: 8 + sha256: b2da6bfd72a1c9cb143ccf64bf5b28790cb4eb58bd1cb978f6537b2322f7d48b + md5: 00fc660ab1b2f5ca07e92b4900d10c79 + depends: + - libopenblas >=0.3.33,<0.3.34.0a0 + - libopenblas >=0.3.33,<1.0a0 constrains: - - mkl <2026 - - liblapack 3.11.0 5*_openblas - - libcblas 3.11.0 5*_openblas - - blas 2.305 openblas - - liblapacke 3.11.0 5*_openblas + - blas 2.308 openblas + - mkl <2027 + - libcblas 3.11.0 8*_openblas + - liblapack 3.11.0 8*_openblas + - liblapacke 3.11.0 8*_openblas license: BSD-3-Clause license_family: BSD - size: 18213 - timestamp: 1765818813880 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda - build_number: 5 - sha256: 0cbdcc67901e02dc17f1d19e1f9170610bd828100dc207de4d5b6b8ad1ae7ad8 - md5: 6636a2b6f1a87572df2970d3ebc87cc0 - depends: - - libblas 3.11.0 5_h4a7cf45_openblas + run_exports: + weak: + - libblas >=3.11.0,<4.0a0 + size: 18804 + timestamp: 1779859100675 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-8_h0358290_openblas.conda + build_number: 8 + sha256: 1a2bc77bb26520255904a3d9b1f40e6bf0bf9d8d3405c7709dd162282820915a + md5: 33a413f1095f8325e5c30fde3b0d2445 + depends: + - libblas 3.11.0 8_h4a7cf45_openblas constrains: - - liblapacke 3.11.0 5*_openblas - - blas 2.305 openblas - - liblapack 3.11.0 5*_openblas + - blas 2.308 openblas + - liblapacke 3.11.0 8*_openblas + - liblapack 3.11.0 8*_openblas license: BSD-3-Clause license_family: BSD - size: 18194 - timestamp: 1765818837135 + run_exports: + weak: + - libcblas >=3.11.0,<4.0a0 + size: 18778 + timestamp: 1779859107964 - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda sha256: d789471216e7aba3c184cd054ed61ce3f6dac6f87a50ec69291b9297f8c18724 md5: c277e0a4d549b03ac1e9d6cbbe3d017b @@ -268,20 +216,24 @@ packages: - ncurses >=6.5,<7.0a0 license: BSD-2-Clause license_family: BSD + run_exports: + weak: + - libedit >=3.1.20250104,<3.2.0a0 size: 134676 timestamp: 1738479519902 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.4-hecca717_0.conda - sha256: d78f1d3bea8c031d2f032b760f36676d87929b18146351c4464c66b0869df3f5 - md5: e7f7ce06ec24cfcfb9e36d28cf82ba57 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.1-hecca717_1.conda + sha256: 16feffd9ddbbe5b718515d38ee376c685ba95491cd901244e24671d20b952a77 + md5: b24d3c612f71e7aa74158d92106318b2 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 constrains: - - expat 2.7.4.* + - expat 2.8.1.* license: MIT license_family: MIT - size: 76798 - timestamp: 1771259418166 + run_exports: {} + size: 77856 + timestamp: 1781203599810 - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h3435931_0.conda sha256: 31f19b6a88ce40ebc0d5a992c131f57d919f73c0b92cd1617a5bec83f6e961e6 md5: a360c33a5abe61c07959e449fa1453eb @@ -290,35 +242,40 @@ packages: - libgcc >=14 license: MIT license_family: MIT + run_exports: + weak: + - libffi >=3.5.2,<3.6.0a0 size: 58592 timestamp: 1769456073053 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_18.conda - sha256: faf7d2017b4d718951e3a59d081eb09759152f93038479b768e3d612688f83f5 - md5: 0aa00f03f9e39fb9876085dee11a85d4 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_20.conda + sha256: e3b7bb287d1685b15781a6d9e3408d6ddaff23f5a1d0d6c0140619dd3950fe72 + md5: 3533de187cf7283f96bfdb28ad73e2bc depends: - __glibc >=2.17,<3.0.a0 - _openmp_mutex >=4.5 constrains: - - libgcc-ng ==15.2.0=*_18 - - libgomp 15.2.0 he0feb66_18 + - libgomp 15.2.0 he0feb66_20 + - libgcc-ng ==15.2.0=*_20 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 1041788 - timestamp: 1771378212382 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_18.conda - sha256: d2c9fad338fd85e4487424865da8e74006ab2e2475bd788f624d7a39b2a72aee - md5: 9063115da5bc35fdc3e1002e69b9ef6e - depends: - - libgfortran5 15.2.0 h68bc16d_18 + run_exports: {} + size: 1041122 + timestamp: 1784923795784 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_20.conda + sha256: 76d81032e264b74f519cc26962d5eb39547e0785fc9d2957bbc12e7a91214412 + md5: a450a08a63f940e9aa7b37692e71196a + depends: + - libgfortran5 15.2.0 h68bc16d_20 constrains: - - libgfortran-ng ==15.2.0=*_18 + - libgfortran-ng ==15.2.0=*_20 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 27523 - timestamp: 1771378269450 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_18.conda - sha256: 539b57cf50ec85509a94ba9949b7e30717839e4d694bc94f30d41c9d34de2d12 - md5: 646855f357199a12f02a87382d429b75 + run_exports: {} + size: 28103 + timestamp: 1784923831860 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_20.conda + sha256: 95122f42566dc9a62b9615d2372b3f3c75fa7bd8bb1eda53aa7532ce60d545eb + md5: 4edbcbea1a8790a7d58e648523b69546 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=15.2.0 @@ -326,42 +283,52 @@ packages: - libgfortran 15.2.0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 2482475 - timestamp: 1771378241063 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_18.conda - sha256: 21337ab58e5e0649d869ab168d4e609b033509de22521de1bfed0c031bfc5110 - md5: 239c5e9546c38a1e884d69effcf4c882 + run_exports: {} + size: 2483727 + timestamp: 1784923810904 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_20.conda + sha256: 30b8ff1bf43871a17c9de99e56171ef54cfbe690ffa86681628db5a00af97cf7 + md5: 49321086c41bb58fc4b6cd8cbb74679d depends: - __glibc >=2.17,<3.0.a0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 603262 - timestamp: 1771378117851 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda - build_number: 5 - sha256: c723b6599fcd4c6c75dee728359ef418307280fa3e2ee376e14e85e5bbdda053 - md5: b38076eb5c8e40d0106beda6f95d7609 - depends: - - libblas 3.11.0 5_h4a7cf45_openblas + run_exports: + strong: + - _openmp_mutex >=4.5 + size: 603998 + timestamp: 1784923730278 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-8_h47877c9_openblas.conda + build_number: 8 + sha256: 168e327d737059553e15cc6ec36d76b9bbb3931c2a7721555fd68b4c9348b247 + md5: 809be8ba8712c77bc7d44c2d99390dc4 + depends: + - libblas 3.11.0 8_h4a7cf45_openblas constrains: - - blas 2.305 openblas - - liblapacke 3.11.0 5*_openblas - - libcblas 3.11.0 5*_openblas + - blas 2.308 openblas + - libcblas 3.11.0 8*_openblas + - liblapacke 3.11.0 8*_openblas license: BSD-3-Clause license_family: BSD - size: 18200 - timestamp: 1765818857876 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda - sha256: 755c55ebab181d678c12e49cced893598f2bab22d582fbbf4d8b83c18be207eb - md5: c7c83eecbb72d88b940c249af56c8b17 + run_exports: + weak: + - liblapack >=3.11.0,<3.12.0a0 + size: 18790 + timestamp: 1779859115086 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_0.conda + sha256: ec30e52a3c1bf7d0425380a189d209a52baa03f22fb66dd3eb587acaa765bd6d + md5: b88d90cad08e6bc8ad540cb310a761fb depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 constrains: - - xz 5.8.2.* + - xz 5.8.3.* license: 0BSD - size: 113207 - timestamp: 1768752626120 + run_exports: + weak: + - liblzma >=5.8.3,<6.0a0 + size: 113478 + timestamp: 1775825492909 - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_1.conda sha256: fe171ed5cf5959993d43ff72de7596e8ac2853e9021dec0344e583734f1e0843 md5: 2c21e66f50753a083cbe6b80f38268fa @@ -370,123 +337,395 @@ packages: - libgcc >=14 license: BSD-2-Clause license_family: BSD + run_exports: {} size: 92400 timestamp: 1769482286018 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda - sha256: 199d79c237afb0d4780ccd2fbf829cea80743df60df4705202558675e07dd2c5 - md5: be43915efc66345cccb3c310b6ed0374 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.33-pthreads_h94d23a6_0.conda + sha256: 3d9aa85648e5e18a6d66db98b8c4317cc426721ad7a220aa86330d1ccedc8903 + md5: 2d3278b721e40468295ca755c3b84070 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - libgfortran - libgfortran5 >=14.3.0 constrains: - - openblas >=0.3.30,<0.3.31.0a0 + - openblas >=0.3.33,<0.3.34.0a0 license: BSD-3-Clause license_family: BSD - size: 5927939 - timestamp: 1763114673331 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.21-h280c20c_3.conda - sha256: 64e5c80cbce4680a2d25179949739a6def695d72c40ca28f010711764e372d97 - md5: 7af961ef4aa2c1136e11dd43ded245ab + run_exports: + weak: + - libopenblas >=0.3.33,<1.0a0 + size: 5931919 + timestamp: 1776993658641 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.22-h280c20c_1.conda + sha256: b677bbf1c339d894757c3dcfbb2f88649e499e4991d70ae09a1466da9a6c92d6 + md5: 965e4d531b588b2e42f66fd8e48b056c depends: - - libgcc >=14 - __glibc >=2.17,<3.0.a0 + - libgcc >=14 license: ISC - size: 277661 - timestamp: 1772479381288 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.52.0-hf4e2dac_0.conda - sha256: d716847b7deca293d2e49ed1c8ab9e4b9e04b9d780aea49a97c26925b28a7993 - md5: fd893f6a3002a635b5e50ceb9dd2c0f4 + run_exports: + weak: + - libsodium >=1.0.22,<1.0.23.0a0 + size: 269272 + timestamp: 1779163468406 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.53.4-hf4e2dac_0.conda + sha256: 72023efc207fe681e26b65fc9d668062cf0b4f0eacf3431e6eb099b95c1f2efd + md5: df088a279cd5e6fd2790b4c196434da1 depends: - __glibc >=2.17,<3.0.a0 - - icu >=78.2,<79.0a0 + - icu >=78.3,<79.0a0 - libgcc >=14 - - libzlib >=1.3.1,<2.0a0 + - libzlib >=1.3.2,<2.0a0 license: blessing - size: 951405 - timestamp: 1772818874251 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_18.conda - sha256: 78668020064fdaa27e9ab65cd2997e2c837b564ab26ce3bf0e58a2ce1a525c6e - md5: 1b08cd684f34175e4514474793d44bcb + run_exports: + weak: + - libsqlite >=3.53.4,<4.0a0 + size: 964200 + timestamp: 1785016112246 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_20.conda + sha256: b5eadda8fb0df262f0d424c4a0c8c1c8d65d904ce622f07936c793ea1b8a39d9 + md5: fbd3d5506b11b5cfc916b29263b6b6f7 depends: - __glibc >=2.17,<3.0.a0 - - libgcc 15.2.0 he0feb66_18 + - libgcc 15.2.0 he0feb66_20 constrains: - - libstdcxx-ng ==15.2.0=*_18 + - libstdcxx-ng ==15.2.0=*_20 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL - size: 5852330 - timestamp: 1771378262446 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda - sha256: 1a7539cfa7df00714e8943e18de0b06cceef6778e420a5ee3a2a145773758aee - md5: db409b7c1720428638e7c0d509d3e1b5 + run_exports: {} + size: 5857690 + timestamp: 1784923825011 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.2-h5347b49_0.conda + sha256: 9b1bdce27a7e31f7d241aeecff67a1f3101d52a2b1e33ccc2cdf2613072bf81f + md5: 01bb81d12c957de066ea7362007df642 depends: - - __glibc >=2.17,<3.0.a0 - libgcc >=14 + - __glibc >=2.17,<3.0.a0 license: BSD-3-Clause license_family: BSD - size: 40311 - timestamp: 1766271528534 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 - md5: edb0dca6bc32e4f4789199455a1dbeb8 + run_exports: + weak: + - libuuid >=2.42.2,<3.0a0 + size: 40017 + timestamp: 1781625522462 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_2.conda + sha256: 55044c403570f0dc26e6364de4dc5368e5f3fc7ff103e867c487e2b5ab2bcda9 + md5: d87ff7921124eccd67248aa483c23fec depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 constrains: - - zlib 1.3.1 *_2 + - zlib 1.3.2 *_2 license: Zlib license_family: Other - size: 60963 - timestamp: 1727963148474 -- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - sha256: 7b1da4b5c40385791dbc3cc85ceea9fad5da680a27d5d3cb8bfaa185e304a89e - md5: 5b5203189eb668f042ac2b0826244964 + run_exports: + weak: + - libzlib >=1.3.2,<2.0a0 + size: 63629 + timestamp: 1774072609062 +- conda: https://conda.anaconda.org/conda-forge/linux-64/msgspec-0.21.1-py314h5bd0f2a_0.conda + sha256: 52565ceea81e801c59dcaeaf5a9c77fba2fade445e67e0864fda50d4b944e15b + md5: 4a8ea416a56e58f012e445f7af2bbcc8 depends: - - mdurl >=0.1,<1 - - python >=3.10 + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 220990 + timestamp: 1776337508167 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_0.conda + sha256: fc89f74bbe362fb29fa3c037697a89bec140b346a2469a90f7936d1d7ea4d8a3 + md5: fc21868a1a5aacc937e7a18747acb8a5 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: X11 AND BSD-3-Clause + run_exports: + weak: + - ncurses >=6.6,<7.0a0 + size: 918956 + timestamp: 1777422145199 +- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.5.1-py314h2b28147_0.conda + sha256: fb665b7e30f9472c58098983f614598cfcf34e7a26b6c419648803095c390aa7 + md5: 59044905d27ba41bfb280ed4692c15e2 + depends: + - python + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=14 + - libblas >=3.9.0,<4.0a0 + - liblapack >=3.9.0,<4.0a0 + - python_abi 3.14.* *_cp314 + - libcblas >=3.9.0,<4.0a0 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + run_exports: + weak: + - numpy >=1.25,<3 + size: 9089255 + timestamp: 1783206203765 +- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.3-h35e630c_0.conda + sha256: d48f5c22b9897c01e4dff3680f1f57ceb02711ab9c62f74339b080419dfad34b + md5: 79dd2074b5cd5c5c6b2930514a11e22d + depends: + - __glibc >=2.17,<3.0.a0 + - ca-certificates + - libgcc >=14 + license: Apache-2.0 + license_family: Apache + run_exports: + weak: + - openssl >=3.6.3,<4.0a0 + size: 3159683 + timestamp: 1781069855778 +- conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py314h0f05182_0.conda + sha256: f15574ed6c8c8ed8c15a0c5a00102b1efe8b867c0bd286b498cd98d95bd69ae5 + md5: 4f225a966cfee267a79c5cb6382bd121 + depends: + - python + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.14.* *_cp314 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 231303 + timestamp: 1769678156552 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.6-habeac84_101_cp314.conda + build_number: 101 + sha256: ee8f2006e1724b1f2e9e0ccc5a7cfdcab973460faa2f63ac1f6e44fdad4c0344 + md5: 78975a41cf3c525da654f17e35bfca9e + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.8.1,<3.0a0 + - libffi >=3.5.2,<3.6.0a0 + - libgcc >=14 + - liblzma >=5.8.3,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.53.3,<4.0a0 + - libuuid >=2.42.2,<3.0a0 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.7,<4.0a0 + - python_abi 3.14.* *_cp314 + - readline >=8.3,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - zstd >=1.5.7,<1.6.0a0 + license: Python-2.0 + run_exports: + weak: + - python_abi 3.14.* *_cp314 + noarch: + - python + size: 36869055 + timestamp: 1784910110714 + python_site_packages_path: lib/python3.14/site-packages +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hda471dd_3.conda + noarch: python + sha256: 970b2a1d12983d8d1cc05d914ad88a0b6ef1fa14038c9649aa834dd6ebee65d7 + md5: acd216255e1370e9aeab5351b831f07c + depends: + - python + - libgcc >=14 + - libstdcxx >=14 + - __glibc >=2.17,<3.0.a0 + - _python_abi3_support 1.* + - cpython >=3.12 + - zeromq >=4.3.5,<4.4.0a0 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 210896 + timestamp: 1779483879367 +- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda + sha256: 12ffde5a6f958e285aa22c191ca01bbd3d6e710aa852e00618fa6ddc59149002 + md5: d7d95fc8287ea7bf33e0e7116d2b95ec + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - ncurses >=6.5,<7.0a0 + license: GPL-3.0-only + license_family: GPL + run_exports: + weak: + - readline >=8.3,<9.0a0 + size: 345073 + timestamp: 1765813471974 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd70dff1_3.conda + build_number: 103 + sha256: 43624eab22f5f29df7d6ffe914cf442f28fd559b55b290906255492826e636e8 + md5: 48a1049e710857572fc2a832aa394d9f + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libzlib >=1.3.2,<2.0a0 + constrains: + - xorg-libx11 >=1.8.13,<2.0a0 + license: TCL + run_exports: + weak: + - tk >=8.6.13,<8.7.0a0 + size: 3550916 + timestamp: 1784229071544 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.7-py314h5bd0f2a_0.conda + sha256: bbb7056f7c5fd606df16ed73ee68687050de2c02fd69a3f69a1cb533a7ed2ae8 + md5: 4a8e5889712641aabdf6695e292857fe + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + license: Apache-2.0 + license_family: Apache + run_exports: {} + size: 918368 + timestamp: 1781006801436 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h09e67af_11.conda + sha256: dc9f28dedcb5f35a127fad2d847674d2833369dd616d294e423b8997df31d8a8 + md5: 96b08867e21d4694fa5c2c226e6581b0 + depends: + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=14 + - krb5 >=1.22.2,<1.23.0a0 + - libsodium >=1.0.22,<1.0.23.0a0 + license: MPL-2.0 + license_family: MOZILLA + run_exports: + weak: + - zeromq >=4.3.5,<4.4.0a0 + size: 311184 + timestamp: 1779123989774 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda + sha256: 68f0206ca6e98fea941e5717cec780ed2873ffabc0e1ed34428c061e2c6268c7 + md5: 4a13eeac0b5c8e5b8ab496e6c4ddd829 + depends: + - __glibc >=2.17,<3.0.a0 + - libzlib >=1.3.1,<2.0a0 + license: BSD-3-Clause + license_family: BSD + run_exports: + weak: + - zstd >=1.5.7,<1.6.0a0 + size: 601375 + timestamp: 1764777111296 +- conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda + sha256: 2a7204314663eeda5dec482a956f0e2eaf289bd5b9953eaaaad0e81aa64638f2 + md5: 3845f3d75991bae0fb90884662f4327c + depends: + - cpython + - python-gil license: MIT license_family: MIT - size: 64736 - timestamp: 1754951288511 -- conda: https://conda.modular.com/max-nightly/linux-64/max-26.3.0.dev2026031105-3.14release.conda - sha256: e6407c6222b5a0ccc4fd7270e55326f39f1026531bde13d3b12586861a2f4710 - md5: c3c4ea5254ba1a4962b1d7c7ba9e7461 + run_exports: {} + size: 8144 + timestamp: 1784221492234 +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.7.22-hbd8a1cb_0.conda + sha256: 0a0544cf95f64394fe4959286f5c71f5444ad58feb0602e53becb27448d24da6 + md5: 0f51e2391ade309db462a55611263e9c depends: - - numpy >=1.18 - - typing-extensions >=4.12.2 - - pyyaml >=6.0.1 - - rich >=13.0.1 - - python 3.14.* - - python-gil - - max-core ==26.3.0.dev2026031105 - license: LicenseRef-Modular-Proprietary - size: 4231736 - timestamp: 1773207424284 -- conda: https://conda.modular.com/max-nightly/linux-64/max-core-26.3.0.dev2026031105-release.conda - sha256: 5fb9f5db6c0a463d2b25185f7bcf9fce9efbd67dbcd31a88ad13b65f2371d540 - md5: 689a17beb15fc6b8b14d188a750c2d85 + - __unix + license: ISC + run_exports: {} + size: 131780 + timestamp: 1784754889428 +- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.4.2-pyhc90fa1f_0.conda + sha256: ccc4787f511964f9a1f2d2d2859c91c5d571fb60f7f09d4c4e092c9b7a94e671 + md5: 2c4bd6aeb90bb157456841c3270a0d92 depends: - - mojo-compiler ==0.26.3.0.dev2026031105 - license: LicenseRef-Modular-Proprietary - size: 137553590 - timestamp: 1773207447229 -- conda: https://conda.modular.com/max-nightly/noarch/mblack-26.3.0.dev2026031105-release.conda - noarch: python - sha256: dd93df3438e366c447af4e2ae2fa3811b83a2a68fa69ce8f9fbbc33daf06ad80 - md5: 33c8f9a54a3122c0a02073f8f4138bb1 + - __unix + - python + - python >=3.10 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 107155 + timestamp: 1783085363526 +- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.6-py314hd8ed1ab_101.conda + noarch: generic + sha256: 436618a5a090c9f7ade0c5f883e8602a130b3991bc88b06badd6f805d7dbff00 + md5: 424c465894c8af725105fe6ad74f6aec + depends: + - python >=3.14,<3.15.0a0 + - python_abi * *_cp314 + license: Python-2.0 + run_exports: {} + size: 49508 + timestamp: 1784909547134 +- conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + sha256: ee6cf346d017d954255bbcbdb424cddea4d14e4ed7e9813e429db1d795d01144 + md5: 8e662bd460bda79b1ea39194e3c4c9ab depends: - python >=3.10 - - click >=8.0.0 - - mypy_extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9.0 - - platformdirs >=2 - - tomli >=1.1.0 - license: LicenseRef-Modular-Proprietary - size: 133842 - timestamp: 1773207196055 + - typing_extensions >=4.6.0 + license: MIT and PSF-2.0 + run_exports: {} + size: 21333 + timestamp: 1763918099466 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.0-pyhcf101f3_0.conda + sha256: 43e2a5497cad1598ff88a3e69f69bc88b7b8f141fa63c60eab5db296317318b8 + md5: ffc17e785d64e12fc311af9184221839 + depends: + - python >=3.10 + - zipp >=3.20 + - python + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 34766 + timestamp: 1779714582554 +- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda + sha256: 19d8bd5bb2fde910ec59e081eeb59529491995ce0d653a5209366611023a0b3a + md5: 4ebae00eae9705b0c3d6d1018a81d047 + depends: + - importlib-metadata >=4.8.3 + - jupyter_core >=4.12,!=5.0.* + - python >=3.9 + - python-dateutil >=2.8.2 + - pyzmq >=23.0 + - tornado >=6.2 + - traitlets >=5.3 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 106342 + timestamp: 1733441040958 +- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda + sha256: 1d34b80e5bfcd5323f104dbf99a2aafc0e5d823019d626d0dce5d3d356a2a52a + md5: b38fe4e78ee75def7e599843ef4c1ab0 + depends: + - __unix + - python + - platformdirs >=2.5 + - python >=3.10 + - traitlets >=5.3 + - python + constrains: + - pywin32 >=300 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 65503 + timestamp: 1760643864586 +- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.2.0-pyhd8ed1ab_0.conda + sha256: 0c4c35376fe920714390d46e4b8d31c876d65f18e1655899e0763ec25f2a902f + md5: 6d03368f2b2b0a5fb6839df53b2eb5e0 + depends: + - mdurl >=0.1,<1 + - python >=3.10 + license: MIT + license_family: MIT + run_exports: {} + size: 69017 + timestamp: 1778169663339 - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda sha256: 78c1bbe1723449c52b7a9df1af2ee5f005209f67e40b6e1d3c7619127c43b1c7 md5: 592132998493b3ff25fd7479396e8351 @@ -494,36 +733,9 @@ packages: - python >=3.9 license: MIT license_family: MIT + run_exports: {} size: 14465 timestamp: 1733255681319 -- conda: https://conda.modular.com/max-nightly/linux-64/mojo-0.26.3.0.dev2026031105-release.conda - sha256: ecf51beda01f003878e078c9898c9fccf90354aa321a6964e2e1bf51fcc0eeea - md5: 923cb2a3993db48806d77c5cbc46587c - depends: - - python >=3.10 - - mojo-compiler ==0.26.3.0.dev2026031105 - - mblack ==26.3.0.dev2026031105 - - jupyter_client >=8.6.2,<8.7 - license: LicenseRef-Modular-Proprietary - size: 89318428 - timestamp: 1773207351958 -- conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-0.26.3.0.dev2026031105-release.conda - sha256: 03eeb0e485c57def8067c0534658b185c984afbc27e77b57b55262dbc3fad8b8 - md5: 86ab7d0febcb6717e3c19018884cdbe4 - depends: - - mojo-python ==0.26.3.0.dev2026031105 - license: LicenseRef-Modular-Proprietary - size: 88636856 - timestamp: 1773207323233 -- conda: https://conda.modular.com/max-nightly/noarch/mojo-python-0.26.3.0.dev2026031105-release.conda - noarch: python - sha256: c6af0e06dc5fa3e1b0dbe3f9753c3da7653090e020720dcfba063f04911fc157 - md5: 647d60ca954e6f019a974171c1dfc830 - depends: - - python >=3.10 - license: LicenseRef-Modular-Proprietary - size: 22930 - timestamp: 1773207195039 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda sha256: 6ed158e4e5dd8f6a10ad9e525631e35cee8557718f83de7a4e3966b1f772c4b1 md5: e9c622e0d00fa24a6292279af3ab6d06 @@ -531,111 +743,51 @@ packages: - python >=3.9 license: MIT license_family: MIT + run_exports: {} size: 11766 timestamp: 1745776666688 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 - md5: 47e340acb35de30501a76c7c799c41d7 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: X11 AND BSD-3-Clause - size: 891641 - timestamp: 1738195959188 -- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.4.2-py314h2b28147_1.conda - sha256: 1d8377c8001c15ed12c2713b723213474b435706ab9d34ede69795d64af9e94d - md5: 4ea6b620fdf24a1a0bc4f1c7134dfafb - depends: - - python - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - libcblas >=3.9.0,<4.0a0 - - python_abi 3.14.* *_cp314 - - libblas >=3.9.0,<4.0a0 - - liblapack >=3.9.0,<4.0a0 - constrains: - - numpy-base <0a0 - license: BSD-3-Clause - license_family: BSD - size: 8926994 - timestamp: 1770098474394 -- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.1-h35e630c_1.conda - sha256: 44c877f8af015332a5d12f5ff0fb20ca32f896526a7d0cdb30c769df1144fb5c - md5: f61eb8cd60ff9057122a3d338b99c00f - depends: - - __glibc >=2.17,<3.0.a0 - - ca-certificates - - libgcc >=14 - license: Apache-2.0 - license_family: Apache - size: 3164551 - timestamp: 1769555830639 -- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda - sha256: c1fc0f953048f743385d31c468b4a678b3ad20caffdeaa94bed85ba63049fd58 - md5: b76541e68fea4d511b1ac46a28dcd2c6 +- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.2-pyhc364b38_0.conda + sha256: 3906abfb6511a3bb309e39b9b1b7bc38f50a723971de2395489fd1f379255890 + md5: 4c06a92e74452cfa53623a81592e8934 depends: - python >=3.8 - python license: Apache-2.0 license_family: APACHE - size: 72010 - timestamp: 1769093650580 -- conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.4-pyhd8ed1ab_0.conda - sha256: 29ea20d0faf20374fcd61c25f6d32fb8e9a2c786a7f1473a0c3ead359470fbe1 - md5: 2908273ac396d2cd210a8127f5f1c0d6 + run_exports: {} + size: 91574 + timestamp: 1777103621679 +- conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + sha256: 6eaee417d33f298db79bc7185ab1208604c0e6cf51dade34cd513c6f9db9c6f3 + md5: 11adc78451c998c0fd162584abfa3559 depends: - python >=3.10 license: MPL-2.0 license_family: MOZILLA - size: 53739 - timestamp: 1769677743677 -- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.9.4-pyhcf101f3_0.conda - sha256: 0289f0a38337ee201d984f8f31f11f6ef076cfbbfd0ab9181d12d9d1d099bf46 - md5: 82c1787f2a65c0155ef9652466ee98d6 + run_exports: {} + size: 56559 + timestamp: 1777271601895 +- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.11.0-pyhcf101f3_0.conda + sha256: a4b8c7d3b3703d10f93187986d59aec09b22033978945845899beb7f849a7be6 + md5: 1fadaa6dd1d03d062075f84157ac2cc7 depends: - python >=3.10 - python license: MIT license_family: MIT - size: 25646 - timestamp: 1773199142345 -- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - sha256: 5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a - md5: 6b6ece66ebcae2d5f326c77ef2c5a066 + run_exports: {} + size: 26632 + timestamp: 1784661349391 +- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.20.0-pyhd8ed1ab_0.conda + sha256: cf70b2f5ad9ae472b71235e5c8a736c9316df3705746de419b59d442e8348e86 + md5: 16c18772b340887160c79a6acc022db0 depends: - - python >=3.9 + - python >=3.10 license: BSD-2-Clause license_family: BSD - size: 889287 - timestamp: 1750615908735 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.3-h32b2ec7_101_cp314.conda - build_number: 101 - sha256: cb0628c5f1732f889f53a877484da98f5a0e0f47326622671396fb4f2b0cd6bd - md5: c014ad06e60441661737121d3eae8a60 - depends: - - __glibc >=2.17,<3.0.a0 - - bzip2 >=1.0.8,<2.0a0 - - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.7.3,<3.0a0 - - libffi >=3.5.2,<3.6.0a0 - - libgcc >=14 - - liblzma >=5.8.2,<6.0a0 - - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.51.2,<4.0a0 - - libuuid >=2.41.3,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.5,<4.0a0 - - python_abi 3.14.* *_cp314 - - readline >=8.3,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - zstd >=1.5.7,<1.6.0a0 - license: Python-2.0 - size: 36702440 - timestamp: 1770675584356 - python_site_packages_path: lib/python3.14/site-packages + run_exports: {} + size: 893031 + timestamp: 1774796815820 - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda sha256: d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664 md5: 5b8d21249ff20967101ffa321cab24e8 @@ -645,17 +797,19 @@ packages: - python license: Apache-2.0 license_family: APACHE + run_exports: {} size: 233310 timestamp: 1751104122689 -- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.3-h4df99d1_101.conda - sha256: 233aebd94c704ac112afefbb29cf4170b7bc606e22958906f2672081bc50638a - md5: 235765e4ea0d0301c75965985163b5a1 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.6-h4df99d1_101.conda + sha256: f96f61b33fe7d0f599ba5e23d9e5231fad9c8a37a1c141dfa8edbd0ba78de9e3 + md5: 7f742295acd62ee0688e7e6924b71e67 depends: - - cpython 3.14.3.* + - cpython 3.14.6.* - python_abi * *_cp314 license: Python-2.0 - size: 50062 - timestamp: 1770674497152 + run_exports: {} + size: 49484 + timestamp: 1784909578801 - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda build_number: 8 sha256: ad6d2e9ac39751cc0529dd1566a26751a0bf2542adb0c232533d32e176e21db5 @@ -664,51 +818,12 @@ packages: - python 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD + run_exports: {} size: 6989 timestamp: 1752805904792 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py314h67df5f8_1.conda - sha256: b318fb070c7a1f89980ef124b80a0b5ccf3928143708a85e0053cde0169c699d - md5: 2035f68f96be30dc60a5dfd7452c7941 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python >=3.14,<3.15.0a0 - - python_abi 3.14.* *_cp314 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - size: 202391 - timestamp: 1770223462836 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hda471dd_2.conda - noarch: python - sha256: be66c1f85c3b48137200d62c12d918f4f8ad329423daef04fed292818efd3c28 - md5: 082985717303dab433c976986c674b35 - depends: - - python - - libgcc >=14 - - libstdcxx >=14 - - __glibc >=2.17,<3.0.a0 - - zeromq >=4.3.5,<4.4.0a0 - - _python_abi3_support 1.* - - cpython >=3.12 - license: BSD-3-Clause - license_family: BSD - size: 211567 - timestamp: 1771716961404 -- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - sha256: 12ffde5a6f958e285aa22c191ca01bbd3d6e710aa852e00618fa6ddc59149002 - md5: d7d95fc8287ea7bf33e0e7116d2b95ec - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - ncurses >=6.5,<7.0a0 - license: GPL-3.0-only - license_family: GPL - size: 345073 - timestamp: 1765813471974 -- conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.3.3-pyhcf101f3_0.conda - sha256: b06ce84d6a10c266811a7d3adbfa1c11f13393b91cc6f8a5b468277d90be9590 - md5: 7a6289c50631d620652f5045a63eb573 +- conda: https://conda.anaconda.org/conda-forge/noarch/rich-15.0.0-pyhcf101f3_0.conda + sha256: 3d6ba2c0fcdac3196ba2f0615b4104e532525ffa1335b50a2878be5ff488814a + md5: 0242025a3c804966bf71aa04eee82f66 depends: - markdown-it-py >=2.2.0 - pygments >=2.13.0,<3.0.0 @@ -717,8 +832,9 @@ packages: - python license: MIT license_family: MIT - size: 208472 - timestamp: 1771572730357 + run_exports: {} + size: 208577 + timestamp: 1775991661559 - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d md5: 3339e3b65d58accf4ca4fb8748ab16b3 @@ -727,117 +843,154 @@ packages: - python license: MIT license_family: MIT + run_exports: {} size: 18455 timestamp: 1753199211006 -- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h366c992_103.conda - sha256: cafeec44494f842ffeca27e9c8b0c27ed714f93ac77ddadc6aaf726b5554ebac - md5: cffd3bdd58090148f4cfcd831f4b26ab +- conda: https://conda.anaconda.org/conda-forge/noarch/taskgroup-0.2.2-pyhd8ed1ab_0.conda + sha256: 6f8db6da8de445930de55b708e6a5d3ab5f076bc14a39578db0190b2a9b8e437 + md5: 9fa69537fb68a095fbac139210575bad depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libzlib >=1.3.1,<2.0a0 - constrains: - - xorg-libx11 >=1.8.12,<2.0a0 - license: TCL - license_family: BSD - size: 3301196 - timestamp: 1769460227866 -- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda - sha256: 62940c563de45790ba0f076b9f2085a842a65662268b02dd136a8e9b1eaf47a8 - md5: 72e780e9aa2d0a3295f59b1874e3768b + - exceptiongroup + - python >=3.9 + - typing_extensions >=4.12.2,<5 + license: MIT + license_family: MIT + run_exports: {} + size: 17330 + timestamp: 1736003478648 +- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.1-pyhcf101f3_0.conda + sha256: 91cafdb64268e43e0e10d30bd1bef5af392e69f00edd34dfaf909f69ab2da6bd + md5: b5325cf06a000c5b14970462ff5e4d58 depends: - python >=3.10 - python license: MIT license_family: MIT - size: 21453 - timestamp: 1768146676791 -- conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py314h5bd0f2a_0.conda - sha256: b8f9f9ae508d79c9c697eb01b6a8d2ed4bc1899370f44aa6497c8abbd15988ea - md5: e35f08043f54d26a1be93fdbf90d30c3 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python >=3.14,<3.15.0a0 - - python_abi 3.14.* *_cp314 - license: Apache-2.0 - license_family: Apache - size: 905436 - timestamp: 1765458949518 -- conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda - sha256: f39a5620c6e8e9e98357507262a7869de2ae8cc07da8b7f84e517c9fd6c2b959 - md5: 019a7385be9af33791c989871317e1ed + run_exports: {} + size: 21561 + timestamp: 1774492402955 +- conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.15.1-pyhcf101f3_0.conda + sha256: b89a823edf524956b94a2a4db974866e4501f05c68976eff458c5dcf07f88431 + md5: 37e3be7b6e2977d37b8fa5da229f5dc0 depends: - - python >=3.9 + - python >=3.10 + - python license: BSD-3-Clause license_family: BSD - size: 110051 - timestamp: 1733367480074 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c - md5: edd329d7d3a4ab45dcf905899a7a6115 - depends: - - typing_extensions ==4.15.0 pyhcf101f3_0 + run_exports: {} + size: 115158 + timestamp: 1780507822178 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda + sha256: b141933ece3518f6d7b75dfb59451e2f26b405a44c18e2518a83e9a02e09315c + md5: c680b5747e8c4c8f23dca0bb7042a8fc + depends: + - typing_extensions ==4.16.0 pyhcf101f3_0 license: PSF-2.0 license_family: PSF - size: 91383 - timestamp: 1756220668932 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731 - md5: 0caa1af407ecff61170c9437a808404d + run_exports: {} + size: 94080 + timestamp: 1783002732887 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + sha256: 2d888f90af0686044882c74193ec80a90ec1943145d94a7b1b048958acda1848 + md5: c70ad746c22219b9700931707482992c depends: - python >=3.10 - python license: PSF-2.0 license_family: PSF - size: 51692 - timestamp: 1756220668932 -- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - sha256: 1d30098909076af33a35017eed6f2953af1c769e273a0626a04722ac4acaba3c - md5: ad659d0a2b3e47e38d829aa8cad2d610 + run_exports: {} + size: 52631 + timestamp: 1783002732887 +- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026c-h151e31d_0.conda + sha256: b928c30ddcb0e3f544c6eade8352737e6e610e263276b90232db6a578ef899d8 + md5: fcb489df604d100968b737f2cb6076c6 license: LicenseRef-Public-Domain - size: 119135 - timestamp: 1767016325805 -- conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - sha256: 6d9ea2f731e284e9316d95fa61869fe7bbba33df7929f82693c121022810f4ad - md5: a77f85f77be52ff59391544bfe73390a + run_exports: {} + size: 118849 + timestamp: 1784250406640 +- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.0-pyhcf101f3_0.conda + sha256: 210bd31c22bb88f5e2a167df24c95bb5f152b2ada7502f9b8c49d1f5366db423 + md5: ba3dcdc8584155c97c648ae9c044b7a3 depends: - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 + - python >=3.10 + - python license: MIT license_family: MIT - size: 85189 - timestamp: 1753484064210 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h41580af_10.conda - sha256: 325d370b28e2b9cc1f765c5b4cdb394c91a5d958fbd15da1a14607a28fee09f6 - md5: 755b096086851e1193f3b10347415d7c + run_exports: {} + size: 24190 + timestamp: 1779159948016 +- conda: https://conda.modular.com/max-nightly/linux-64/max-26.5.0.dev2026072505-3.14release.conda + sha256: 735cc65e1938c0c0e5182d96110a144239782b5d954ebddbad4dfcb0a246637b + md5: ffe92be5964a56b949a8c782a3f0a98d depends: - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - libstdcxx >=14 - - krb5 >=1.22.2,<1.23.0a0 - - libsodium >=1.0.21,<1.0.22.0a0 - license: MPL-2.0 - license_family: MOZILLA - size: 311150 - timestamp: 1772476812121 -- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda - sha256: b4533f7d9efc976511a73ef7d4a2473406d7f4c750884be8e8620b0ce70f4dae - md5: 30cd29cb87d819caead4d55184c1d115 + - click >=8.0.0 + - exceptiongroup >=0.2.2 + - msgspec >=0.19.0 + - numpy >=1.18 + - psutil >=7.0.0 + - rich >=13.0.1 + - taskgroup >=0.2.2 + - typing-extensions >=4.12.2 + - python 3.14.* + - python-gil + - max-core ==26.5.0.dev2026072505 + license: LicenseRef-Modular-Proprietary + run_exports: {} + size: 18225480 + timestamp: 1784959682216 +- conda: https://conda.modular.com/max-nightly/linux-64/max-core-26.5.0.dev2026072505-release.conda + sha256: a2caecf6f29447375ce1bb42979d998c13acf5f48f5b16c7dc6166825c005cf0 + md5: 20809390abf8b0e993718841eb16813b + depends: + - mojo-compiler ==1.0.0b3.dev2026072505 + license: LicenseRef-Modular-Proprietary + run_exports: {} + size: 103408905 + timestamp: 1784959675208 +- conda: https://conda.modular.com/max-nightly/linux-64/mojo-1.0.0b3.dev2026072505-release.conda + sha256: 9fa11e681371d1994ffbe66d0f7e1502e7b22381c5ca8d5f844b77a335c8e19b + md5: 6a0c4ee8b9b53aba98644702a4c2c682 depends: - python >=3.10 - - python - license: MIT - license_family: MIT - size: 24194 - timestamp: 1764460141901 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda - sha256: 68f0206ca6e98fea941e5717cec780ed2873ffabc0e1ed34428c061e2c6268c7 - md5: 4a13eeac0b5c8e5b8ab496e6c4ddd829 + - mojo-compiler ==1.0.0b3.dev2026072505 + - mblack ==26.5.0.dev2026072505 + - jupyter_client >=8.6.2,<8.7 + license: LicenseRef-Modular-Proprietary + run_exports: {} + size: 114479370 + timestamp: 1784959545074 +- conda: https://conda.modular.com/max-nightly/linux-64/mojo-compiler-1.0.0b3.dev2026072505-release.conda + sha256: 307aae574f073cf914c9efe3cfadeeb2f3992c3a426154731e934b81f7b2f725 + md5: b9d5de41a9c940f47090818f8d9d0c18 + depends: + - mojo-python ==1.0.0b3.dev2026072505 + license: LicenseRef-Modular-Proprietary + run_exports: {} + size: 80560693 + timestamp: 1784959541118 +- conda: https://conda.modular.com/max-nightly/noarch/mblack-26.5.0.dev2026072505-release.conda + noarch: python + sha256: a66e15918fe18928e4a35c08e16f0517c25d5bc10f836a2240c7cbf9788f9501 + md5: 19378925651cd95d631a7f580cb2846d depends: - - __glibc >=2.17,<3.0.a0 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - size: 601375 - timestamp: 1764777111296 + - python >=3.10 + - click >=8.0.0 + - mypy_extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9.0 + - platformdirs >=2 + - tomli >=1.1.0 + license: LicenseRef-Modular-Proprietary + run_exports: {} + size: 136731 + timestamp: 1784959402726 +- conda: https://conda.modular.com/max-nightly/noarch/mojo-python-1.0.0b3.dev2026072505-release.conda + noarch: python + sha256: 9d90f9d14440c864e96c331fb54e5a2be5fc724bdcdec0adf9ddd52d1dabdcb9 + md5: f5e33c79f95b3cb3bd7e7d4bfe227eb2 + depends: + - python >=3.10 + license: LicenseRef-Modular-Proprietary + run_exports: {} + size: 24107 + timestamp: 1784959402688 diff --git a/mojo/pixi.toml b/mojo/pixi.toml index 37ff9cc53a..66bc00e163 100644 --- a/mojo/pixi.toml +++ b/mojo/pixi.toml @@ -1,14 +1,12 @@ [workspace] -name = "darktable-mojo" authors = ["maxchisto "] channels = ["https://conda.modular.com/max-nightly", "conda-forge"] +name = "mojo" platforms = ["linux-64"] version = "0.1.0" [tasks] -build-lib = "mojo build -I . iop/sigmoid/lib.mojo --emit shared-lib -o libsigmoid_mojo.so" -bench = "mojo bench/sigmoid_bench.mojo" [dependencies] -mojo = ">=0.26.3.0.dev2026031105,<0.27" -max = ">=26.3.0.dev2026031105,<27" +mojo = ">=1.0.0b3.dev2026072505,<2" +max = ">=26.5.0.dev2026072505"