Halide
png-decoder
Our great sponsors
Halide | png-decoder | |
---|---|---|
43 | 4 | |
5,683 | 40 | |
1.1% | - | |
9.5 | 0.0 | |
2 days ago | over 1 year ago | |
C++ | Rust | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Halide
-
Show HN: Flash Attention in ~100 lines of CUDA
If CPU/GPU execution speed is the goal while simultaneously code golfing the source size, https://halide-lang.org/ might have come in handy.
-
From slow to SIMD: A Go optimization story
This is a task where Halide https://halide-lang.org/ could really shine! It disconnects logic from scheduling (unrolling, vectorizing, tiling, caching intermediates etc), so every step the author describes in the article is a tunable in halide. halide doesn't appear to have bindings for golang so calling C++ from go might be the only viable option.
- Making Hard Things Easy
-
Deepmind Alphadev: Faster sorting algorithms discovered using deep RL
It is not the sorting per-se which was improved here, but sorting (particularly short sequences) on modern CPUs with really the complexity being on the difficulty of predicting what will work quickly on these modern CPUs.
Doing an empirical algorithm search to find which algorithms fit well on modern CPUs/memory systems is pretty common, see e.g. FFTW, ATLAS, https://halide-lang.org/
-
Two-tier programming language
Halide https://halide-lang.org/
- Best book on writing an optimizing compiler (inlining, types, abstract interpretation)?
-
What would make you try a new language?
If we drop the "APL" requirement, wouldn't Halide fit your criteria for the third?
-
Library that could generate vectorized code for different instruction sets?
Adobe halide https://github.com/halide/Halide
-
Show HN: Port of OpenAI's Whisper model in C/C++
I suggest looking into Halide as it will make trying different paths much easier (https://halide-lang.org/).
I haven't looked at your code closely so can't say with certainty it would be the right fit but worth a look.
-
Esp32 tensorflow lite
Halide home page: https://halide-lang.org/
png-decoder
-
Anyone want to speed up a PNG decoder?
I recently wrote a png-decoder for use in fontdue to parse emoji PNGs in a no_std context. I haven't yet put any effort into optimization, and from some basic benchmarks it seems the Wuffs implementation runs twice as fast.
Just sent a pull request to fix that issue (https://github.com/bschwind/png-decoder/pull/11)
-
The Fastest, Safest PNG Decoder in the World
I recently wrote a Rust PNG decoder mostly for use in no_std contexts, and it was motivated out of wanting to decode emoji for a font rasterizer.
I didn't really put any effort into optimizing it yet, though it does use miniz_oxide and it decompresses the entire image at once instead of per-scanline.
I'm curious if it is at all competitive with the Wuffs decoder, I'm guessing probably not because I haven't put any effort into using SIMD.
https://github.com/bschwind/png-decoder
But overall the implementation was pretty straightforward, I just read the RFC and wrote it out over a few weeks. One quirk of my library currently is it always returns an RGBA buffer, instead of potentially letting you save memory on a grayscale or RGB image.
What are some alternatives?
taichi - Productive, portable, and performant GPU programming in Python.
wuffs - Wrangling Untrusted File Formats Safely
futhark - :boom::computer::boom: A data-parallel functional programming language
Image-Convolutaion-OpenCL
TensorOperations.jl - Julia package for tensor contractions and related operations
triton - Development repository for the Triton language and compiler
ponyc - Pony is an open-source, actor-model, capabilities-secure, high performance programming language
image-png - PNG decoding and encoding library in pure Rust
qoi - The “Quite OK Image Format” for fast, lossless image compression
simd-adler32 - A SIMD-accelerated Adler-32 hash algorithm implementation.
smhasher - Hash function quality and speed tests
maxas - Assembler for NVIDIA Maxwell architecture