Hacker GitHub

← All repos

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

Mentions per year 21 mentions · busiest year 2020 (8)
20082026
  1. 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:…
  2. …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...
  3. …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…
  4. …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…
  5. …(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 -…
  6. …[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
  7. …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
  8. …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
  9. 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
  10. …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
  11. …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
  12. …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
  13. …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
  14. …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
  15. …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++
  16. …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++
  17. …[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++
  18. …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
  19. …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…
  20. …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...…
  21. …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...