Skip to content
Snippets Groups Projects
  • Daniël de Kok's avatar
    2de232d2
    Add x86_64 compute levels as additional system types · 2de232d2
    Daniël de Kok authored
    When performing distributed builds of machine learning packages, it
    would be nice if builders without the required SIMD instructions can
    be excluded as build nodes.
    
    Since x86_64 has accumulated a large number of different instruction
    set extensions, listing all possible extensions would be unwieldy.
    AMD, Intel, Red Hat, and SUSE have recently defined four different
    microarchitecture levels that are now part of the x86-64 psABI
    supplement and will be used in glibc 2.33:
    
    https://gitlab.com/x86-psABIs/x86-64-ABI
    https://lwn.net/Articles/844831/
    
    This change uses libcpuid to detect CPU features and then uses them to
    add the supported x86_64 levels to the additional system types. For
    example on a Ryzen 3700X:
    
    $ ~/aps/bin/nix -vv --version | grep "Additional system"
    Additional system types: i686-linux, x86_64-v1-linux, x86_64-v2-linux, x86_64-v3-linux
    2de232d2
    History
    Add x86_64 compute levels as additional system types
    Daniël de Kok authored
    When performing distributed builds of machine learning packages, it
    would be nice if builders without the required SIMD instructions can
    be excluded as build nodes.
    
    Since x86_64 has accumulated a large number of different instruction
    set extensions, listing all possible extensions would be unwieldy.
    AMD, Intel, Red Hat, and SUSE have recently defined four different
    microarchitecture levels that are now part of the x86-64 psABI
    supplement and will be used in glibc 2.33:
    
    https://gitlab.com/x86-psABIs/x86-64-ABI
    https://lwn.net/Articles/844831/
    
    This change uses libcpuid to detect CPU features and then uses them to
    add the supported x86_64 levels to the additional system types. For
    example on a Ryzen 3700X:
    
    $ ~/aps/bin/nix -vv --version | grep "Additional system"
    Additional system types: i686-linux, x86_64-v1-linux, x86_64-v2-linux, x86_64-v3-linux
compute-levels.sh 198 B