Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
翻訳待ち
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Halide is a programming language designed to make it easier to write high-performance image and array processing code on modern machines. Halide currently targets:
Rather than being a standalone programming language, Halide is embedded in C++. This means you write C++ code that builds an in-memory representation of a Halide pipeline using Halide's C++ API. You can then compile this representation to an object file, or JIT-compile it and run it in the same process. Halide also provides a Python binding that provides full support for writing Halide embedded in Python without C++.
Halide requires C++17 (or later) to use.
For more detail about what Halide is, see https://halide-lang.org.
For API documentation see https://halide-lang.org/docs.
For some example code, read through the tutorials online at
https://halide-lang.org/tutorials. The corresponding code is in the tutorials/
directory. Larger examples are in the apps/ directory.
If you've acquired a full source distribution and want to build Halide, see the notes below.
We provide binary wheels on PyPI. Halide provides bindings for C++ and Python. Even if you only intend to use Halide from C++, pip may be the easiest way to get a binary build of Halide.
Full releases may be installed with pip or added to a uv project like so:
$ pip install halide
$ uv add halide
The published Python artifacts are split into three distributions that share the
halide import package. The halide distribution provides the compiler Python
API and depends on matching versions of halide-bin (the compiler, headers,
tools, and CMake package) and halide-runtime (the standalone halide.runtime
API). Most users should install only halide; the package manager installs its
two dependencies automatically. Deployments that only call precompiled AOT
pipelines can instead install halide-runtime, avoiding the compiler and LLVM
entirely.
Every commit to main is published to our package index as a
development version. If you use uv, you can pin
the nightly Halide in a project like so:
$ uv add halide --prerelease=allow --index https://pypi.halide-lang.org/simple
Or install directly with pip:
$ pip install halide --pre --extra-index-url https://pypi.halide-lang.org/simple
Currently, we provide wheels for: Windows x86-64, macOS x86-64, macOS arm64, and Linux x86-64. The Linux wheels are built for manylinux_2_28, which makes them broadly compatible (Debian 10, Ubuntu 18.10, Fedora 29).
For C++ usage of the pip package: On Linux and macOS, CMake's find_package
command should find Halide as long as you're in the same virtual environment you
installed it in. On Windows, you will need to add the virtual environment root
directory to CMAKE_PREFIX_PATH. This can be done by running
set CMAKE_PREFIX_PATH=%VIRTUAL_ENV% in cmd.
Other build systems can find the Halide root path by running
python -c "import halide; print(halide.install_dir())".
If you cannot use Python tooling (e.g. pip or uv) to download the Halide
wheels, you can download them directly from either our
nightly index or the public
PyPI index. Python wheel files are just
standard zip files with a .whl extension.
Alternatively, if you use macOS, you can install Halide via Homebrew like so:
$ brew install halide
If you use vcpkg to manage dependencies, you can install Halide via:
$ vcpkg install halide:x64-windows # or x64-linux/x64-osx
One caveat: vcpkg installs only the minimum Halide backends required to compile
code for the active platform. If you want to include all the backends, you
should install halide[target-all]:x64-windows instead.
We are interested in bringing Halide to other popular package managers and Linux distribution repositories! We track the status of various distributions of Halide in this GitHub issue. If you have experience publishing packages we would be happy to work with you!
There are two sets of platform requirements relevant to Halide: those required to run the compiler library in either JIT or AOT mode, and those required to run the binary outputs of the AOT compiler.
These are the tested host toolchain and platform combinations for building and running the Halide compiler library.
| Compiler | Version | OS | Architectures |
|---|---|---|---|
| GCC | 9.5 | Ubuntu Linux 20.04 LTS | x86, x64 |
| GCC | 11.4 | Ubuntu Linux 22.04 LTS | ARM32, ARM64 |
| MSVC | 2022 (19.37) | Windows 11 (22631) | x86, x64 |
| AppleClang | 15.0.0 | macOS 14.4.1 | x64 |
| AppleClang | 14.0.0 | macOS 14.6 | ARM64 |
Some users have successfully built Halide for Linux using Clang 9.0.0+, for Windows using ClangCL 11.0.0+, and for Windows ARM64 by cross-compiling with MSVC. We do not actively test these scenarios, however, so your mileage may vary.
Beyond these, we are willing to support (by accepting PRs for) platform and toolchain combinations that still receive active, first-party, public support from their original vendors. For instance, at time of writing, this excludes Windows 7 and includes Ubuntu 18.04 LTS.
This is the beginning of the README. Read the rest at the original. Read the full README ↗