jump to:allmastodonblueskylemmylobstersdevstackwikirsshn
wwebbit
view: | | |

Tech / everything · hot matching “bot”

5 shown · updated 26s ago · read only
  1. GPU Offload in Rust: Portable, Safe, and Fast (arxiv.org)lobsters

    3 points by theelx in lobste.rs · 3h ago · 1 lobsters

    High-performance GPU programming has traditionally forced a compromise between execution efficiency and memory safety. While Rust guarantees compile-time memory safety for host CPUs via its strict ownership model, applying these constraints to massively parallel GPU execution environments has previously mandated either vendor-locked Domain-Specific Languages (DSLs) or escaping to explicit unsafe raw pointers. This paper presents a zero-overhead, multi-vendor GPU compilation framework built natively into the Rust compiler (rustc) and LLVM backends. We leverage Rust’s rich type system, ownership system, and strict aliasing guarantees (𝑛𝑜𝑎𝑙𝑖𝑎𝑠) to efficiently manage and optimize data transfers through LLVM’s Offload infrastructure. We expose the technical challenges of cross-vendor ABI lowering mismatches between Host and Device targets and introduce a two-pass compilation pipeline capable of safely handling both manual and compiler-generated memory movements. Evaluating our framework on RAJAPerf demonstrates that our rustc-based solution can generate competitive LLVM IR for GPU kernels, achieving a solid kernel performance against native, hand-optimized CUDA and HIP C++ baselines.
    filed under compilerspdfrust
  2. CSS-in-JS Arena Bamboo, StyleX and Panda on Pixel-Identical Apps (github.com)lobsters

    1 points by gajus in lobste.rs · 1h ago · lobsters

    A little context, I've been working on Contra for the last 6 years. It's a marketplace-network – an application that's comparable to the likes of LinkedIn, UpWork, and similar in terms of its surface area. That's hundreds of routes, thousands of components, and tens of thousands of styles. Over the last year, we have been obsessed with performance. We have optimized every layer of our infrastructure to the point where profiling the application increasingly started to surface bottlenecks in client-side (bundle size, and metrics like TBT, LCP, and INP). That's where CSS-in-JS comes in. 6 years ago, we started with styled-components. Then zero-runtime alternatives emerged and we started to experiment with them, eventually landing on Panda CSS. Panda took us a long way, but... they aren't _actually_ zero-runtime. Panda extracts CSS at build time, but it uses ~15KB runtime to map those style objects at runtime. This overhead surfaced repeatedly when profiling pages with lots of components (server-side and client-side). That's where I ended up writing Bamboo to solve this. Bamboo folds styles at build-time achieving _near_ zero-runtime (0.5KB vs 15 KB). If you write: ``` <div className={css({ fontSize: 'lg', fontWeight: 'bold' })}>Title</div> ``` it becomes: ``` <div className="fs_lg fw_bold">Title</div> ``` at build time. If the variant is dynamic, then bundle is inlined with pre-computed map of classes. ``` <span className={pick(status, { ok: "d_inline-flex px_8px bg_successSoft c_success", warn: "d_inline-flex px_8px bg_warningSoft c_warning", err: "d_inline-flex px_8px bg_dangerSoft c_danger", })} /> ``` That's the main idea behind Bamboo. Thanks to folding, we were able to improve our server-side and client-side performance. I built CSS-in-JS Arena as a sanity benchmark to track how we compare to Panda, but also to any other emerging frameworks.
    filed under cssperformance