Published, the first releases of the project Braid, a high-level programming language for parallel calculations, have been introduced. Braid is presented as an alternative to low-level languages like CUDA and Metal, offering an expressive syntax and development ease similar to Python and Haskell. The project is coded in Rust and is distributed under the Apache 2.0 license.
According to the capabilities of Bend, the language supports higher functions, classes, continuations, unlimited recursion, comparisons, recursive comparisons, cycles, integer, string, and list types. Bend offers two syntax options inspired by Python and Haskell, eliminating the need for explicit control flow annotations, facilitating flow creation, and lock setting. Parallelization is automatic, enabling simultaneous execution of operations on different computation cores, improving efficiency.
Bend programs can run on hardware supporting mass parallelism, such as GPUs, showcasing near-linear performance enhancement with increasing core count. The Bend code is compiled into a low-level intermediate representation called hvm2 (Higher-order Virtual Machine 2), which is further compiled into C and CUDA representations. Currently, the project is exclusively supported on NVIDIA GPUs.
In terms of performance, a test application featuring Bitone sorting executed on an Apple M3 Max took 12.15 seconds in a single thread, 0.96 seconds with 16 threads, and only 0.21 seconds on a NVIDIA RTX 4090 GPU with 16,000 threads.