Convenient CPU feature detection and dispatch in the Magnum Engine

This page summarizes the projects mentioned and recommended in the original post on reddit.com/r/cpp

Our great sponsors
  • talent.io - Download talent.io’s Tech Salary Report
  • Scout APM - Truly a developer’s best friend
  • SonarQube - Static code analysis for 29 languages.
  • NumPy

    The fundamental package for scientific computing with Python.

  • zlib-ng

    zlib replacement with optimizations for "next generation" systems.

    zlib-ng: https://github.com/zlib-ng/zlib-ng/blob/develop/functable.c

  • talent.io

    Download talent.io’s Tech Salary Report. Median salaries, most in-demand technologies, state of the remote work... all you need to know your worth on the market by tech recruitment platform talent.io

  • libjpeg-turbo

    Main libjpeg-turbo repository

    libjpeg-turbo: https://github.com/libjpeg-turbo/libjpeg-turbo/blob/main/simd/x86_64/jsimdcpu.asm

  • libwebp

    Mirror only. Please do not send pull requests.

  • zstd

    Zstandard - Fast real-time compression algorithm

  • Skia

    Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

  • Bullet

    Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.

    Bullet: https://github.com/bulletphysics/bullet3/blob/5ae9a15ecac7bc7e71f1ec1b544a55135d7d7e32/src/LinearMath/btCpuFeatureUtility.h

  • Scout APM

    Truly a developer’s best friend. Scout APM is great for developers who want to find and fix performance issues in their applications. With Scout, we'll take care of the bugs so you can focus on building great things 🚀.

  • wasm-simd

    Documenting Wasm SIMD performance

    This WASM SIMD instruction table is a bit outdated (doesn't show the bitmask instructions I mentioned in the article), but can still give you a pretty good picture about the differences. There are many instructions that map 1:1 to an actual x86 instruction but need several on ARM, and vice versa.

  • go

    The Go programming language

    I hope so, after all if glibc can get away with that with their ifunc-based dispatch (although for a very limited set of APIs), I assumed I could too. I only know about one case where CPU features differed among cores and it wasn't recognized as a good idea :) I would probably collect a lowest common denominator across all cores in that case.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts