I thought this should be documented somewhere.
rust by default uses the guaranteed instruction sets like sse1 and sse2. but most cpus support better features.
The options you give to a compiler are called target_features and we can get the default settings (features) for a configuration by using
rustc -C target-cpu=native --target=x86_64-pc-windows-gnu --print cfg.
ofcourse, the rustc --print cfg is the important part, but the other two options also help a lot in knowing what cpus support which features and what targets support which features by changing them up. target-cpu can be any cpu family name like skylake for intel 6th gen.
to get a list of ALL features available we use rustc --print target-features.
once we are done with the refactoring of the jokolay for alpha 0.2, we can start doing some benchmarks using latest features. if the benchmarks improve performance by a decent margin, we can release jokolay as multiple binaries with and without features enabled during compilation.
I thought this should be documented somewhere.
rust by default uses the guaranteed instruction sets like
sse1andsse2. but most cpus support better features.The options you give to a compiler are called
target_featuresand we can get the default settings (features) for a configuration by usingrustc -C target-cpu=native --target=x86_64-pc-windows-gnu --print cfg.ofcourse, the
rustc --print cfgis the important part, but the other two options also help a lot in knowing what cpus support which features and what targets support which features by changing them up.target-cpucan be any cpu family name likeskylakefor intel 6th gen.to get a list of ALL features available we use
rustc --print target-features.once we are done with the refactoring of the jokolay for alpha 0.2, we can start doing some benchmarks using latest features. if the benchmarks improve performance by a decent margin, we can release jokolay as multiple binaries with and without features enabled during compilation.