mratsim/laser
View on GitHub ↗ ★ 295 Nim
The HPC toolbox: fused matrix multiplication, convolution, data-parallel strided tensor primitives, OpenMP facilities, SIMD, JIT Assembler, CPU detection, state-of-the-art vectorized BLAS for floats and integers
21 mentions on Hacker News by 4 people: 0 stories, 21 comments · first 2018-12-19 · latest 2024-07-20
20082026
-
Years ago I started a collection of convolution optimization resources: https://github.com/mratsim/laser/wiki/Convolution-optimisati... Also checked and apparently Nvidia Cutlass now supports generic convolutions:…
comment by mratsim · 2024-07-20 · in Memory and ILP handling in 2D convolutions -
…but not for floats. There is an escape hatch in -ffast-math. I have extensive benches on this here: https://github.com/mratsim/laser/blob/master/benchmarks%2Ffp...
comment by mratsim · 2024-01-23 · in From slow to SIMD: A Go optimization story -
…don't get why you think it's impossible to reach BLAS speed. The matrix sizes are configured here: https://github.com/mratsim/laser/blob/master/benchmarks/gemm... It defaults to 1920x1920 * 1920x1920. Note, if you activate the benchmarks…
comment by mratsim · 2024-01-04 · in Benchmarking 20 programming languages on N-queens and matrix multiplication -
…git The repo submodules MKLDNN (now Intel oneDNN) to bench vs Intel JIT Compiler ``` git clone https://github.com/mratsim/laser cd laser git submodule update --init --recursive nim cpp -r --outdir:build -d:danger -d:openmp…
comment by mratsim · 2024-01-04 · in Benchmarking 20 programming languages on N-queens and matrix multiplication -
…(dual core from old MBP15), i9-9980XE (Skylake-X 18 cores), Dual Xeon Gold 6132, AMD 7840U. See: https://github.com/mratsim/laser/blob/master/benchmarks%2Fge... And using my own threadpool instead of OpenMP -…
comment by mratsim · 2024-01-04 · in Benchmarking 20 programming languages on N-queens and matrix multiplication -
…[1] https://github.com/sinkingsugar/nimline [2] https://github.com/yglukhov/nimpy [3] https://github.com/numforge/laser [4] https://github.com/mratsim/Arraymancer [5] https://github.com/sinkingsugar/nimtorch
comment by beagle3 · 2020-11-26 · in Java is better than C++ for high speed trading systems -
…read the C headers for <immintrin.h> or something like that. Here’s a nice SIMD wrapper for Nim: https://github.com/numforge/laser/blob/master/laser/simd.nim
comment by lasagnaphil · 2020-07-02 · in Ray Tracing in Nim -
…metaprogramming than D. Can you write an Embedded DSL + compiler running at compile-time in D - https://github.com/numforge/laser/tree/master/laser/lux_comp... Can you write a cryptographic library with hex conversion to big integer and…
comment by mratsim · 2020-07-02 · in Ray Tracing in Nim -
Sure, you might be interested in the research in loop nest scheduling I gathered here: https://github.com/numforge/laser/blob/master/research/autom... The most promising here being the Halide and Tiramisu compiler. Halide uses machine…
comment by mratsim · 2020-04-22 · in PyTorch 1.5 -
…analysis and control on register allocations, L1 and L2 cache tiling and avoiding TLB cache miss: - https://github.com/numforge/laser/blob/master/laser/primitiv... - Code, including caveat about hyperthreading:…
comment by mratsim · 2020-04-22 · in A possible new back end for Rust -
…path/to/my/app [1]: https://github.com/mratsim/Arraymancer/blob/6fddfa9a734ac01c... [2]: https://github.com/numforge/laser/blob/d1e6ae6106564bfb350d4...
comment by mratsim · 2020-02-24 · in Nim Community Survey 2019 Results -
…benchmark output of the Laser High-Performance Computing lib and Arraymancer lib in their source: https://github.com/numforge/laser/blob/d1e6ae6106564bfb350d4... https://github.com/mratsim/Arraymancer/blob/6fddfa9a734ac01c... To qualify…
comment by gavinray · 2020-02-24 · in Nim Community Survey 2019 Results -
…for its money here is Julia, I really dig the work that has been going on there for ML as well. [0] https://github.com/numforge/laser [1] https://github.com/mratsim/Arraymancer [2] https://github.com/mratsim/weave
comment by gavinray · 2020-02-23 · in Nim Community Survey 2019 Results -
…thub.com/mratsim/Arraymancer/issues/347#issuecomme... - My own domain specific language and compiler: https://github.com/numforge/laser/tree/master/laser/lux_comp... there are a low_level_design_considerations.md and challenges.md that…
comment by mratsim · 2019-11-22 · in The Linear Algebra Mapping Problem -
…should give an escape hatch to allow hand optimization like Halide[6] or Tiramisu do[7]. [1]: https://github.com/numforge/laser/blob/e660eeeb723426e80a7b1... [2]: https://github.com/numforge/laser/blob/e660eeeb723426e80a7b1... [3]:…
comment by mratsim · 2019-11-07 · in Comparing Parallel Rust and C++ -
…at the bottom. The base language is Nim but pure C code should generate the same assembly. [1] https://github.com/numforge/laser/blob/e660eeeb723426e80a7b1... .
comment by mratsim · 2019-11-07 · in Comparing Parallel Rust and C++ -
…[4]: https://bluss.github.io/rust/2016/03/28/a-gemmed-rabbit-hole... [5]: https://github.com/numforge/laser/blob/e660eeeb723426e80a7b1... [6]: https://github.com/numforge/laser/blob/e660eeeb723426e80a7b1...
comment by mratsim · 2019-11-07 · in Comparing Parallel Rust and C++ -
…to reach the speed of assembly tuned OpenBLAS and Intel MKL-DNN (no assembly at all): bench: https://github.com/numforge/laser/blob/c7ddceb0/benchmarks/g... code: https://github.com/numforge/laser/tree/c7ddceb0/laser/primit... And matrix…
comment by mratsim · 2019-10-01 · in Zig 0.5.0 Release Notes -
…JIT for x86_64 (compared to asmjit and xbyak I don't need to parse or codegen the C++ code): https://github.com/numforge/laser/blob/master/laser/photon_j... - a DSL for neural network: https://github.com/mratsim/Arraymancer#sequence-classif…
comment by mratsim · 2019-04-23 · in Ask HN: What metaprogrammable language do you/would like to use? -
…directly use them with type checking and all Nim facilities while keeping an easy to read syntax: https://github.com/numforge/laser/blob/e898f027/laser/photon... [1]: Xbyak - https://github.com/herumi/xbyak/blob/v5.751/gen/gen_avx512.c...…
comment by mratsim · 2019-02-12 · in Show HN: Synesthesia – Optimizing brainfuck compiler implemented as Nim macros -
…VM[1] and this is my opcode tables and probably what I like best about Nim metaprogramming[2] [1]: https://github.com/numforge/laser/blob/9fbb8d2a/examples/ex0... [2]: https://github.com/numforge/laser/blob/9fbb8d2a/laser/photon...
comment by mratsim · 2018-12-19 · in Hello, JIT World: The Joy of Simple JITs (2012)