Has anyone seen any documentation about optimizing for the Ryzen CPU platform? Specifically I'm interested in C++ and any information about the performance characteristics of instructions on the platform.
Even AMD is still measuring and learning. In lieu of documentation...
Maybe a tool like AIDA can list instruction latencies?
(links to old data from an early engineering sample at http://users.atw.hu/instlatx64/AuthenticAMD0800F00_K17_Zen_InstLatX64.txt)
(But there have been reports/rumors that AIDA was not measuring cache timing correctly, perhaps due to differing latencies depending on the relative location of the CCX or Core with the cache line, or due to cache-line clearing optimizations.)
For optimizing code, ideas from the GDC 2017 talk on Optimizing for Ryzen
(from http://www.4gamer.net/games/300/G030061/20170308070/ (ja))
(experiments might have been performed and slides written before final silicon was available)
The InstLatx64 site now has AIDA outputs from an AMD Ryzen 7 1800X for memory and instruction latency. (Via an RWT forum post).
However, the output says it is from the aida_bench64.dll library version dated February 9.
So it might not use AIDA updates for Ryzen 7. AIDA summarized changes forthcoming for Ryzen, as of March 4.
The InstLatx64 site has added AIDA outputs from an AMD Ryzen 7 1700X for memory and instruction latency.
The output says it is from the aida_bench64.dll library version dated March 17.
On March 28, AIDA announced version 5.90, claiming benchmarks were optimized for Ryzen, among other improvements.
The 7-cpu site offers some cache latency estimates for Ryzen, perhaps deduced from runs of their LZMA benchmark.(It doesn't give measurements for different stride lengths as the AIDA memory test data does.) (Via an RWT forum post.)
The GPUOpen page for AMD's GDC 2017 Presentations now has a full set of slides from the Ken Mitchell and Eliot Kim GDC2017 presentation, Optimizing for AMD RYZEN™ CPU.
Did you see this from AMD?
Tips for Building a Better AMD Ryzen™ System
I know what you mean around AMD Ryzen processors, you are interested in the changes for Instruction Set Architectures and want to know the things related with optimising the codes to fully utilise its underlying microarchitecture. But at this moment there is nothing like that present, and there is no compilers designed or optimised exclusively for AMD Ryzen processor. I am also eager to know the detail information about the Microarchitecture resident under this newly coming processor too.
Project Mercury: Thread affinities to CCXs, SMT etc optimizations. Very light weight/efficient.
AMD Ryzen Processor Optimization added to Cacheman 10.10:
Bitsum's Process Lasso: Optimize and automate process CPU affinities:
ie: I dont know a damn thing about coding but the above coders do, so they, and what they have done may have/be some pointers for everyone.
The rules seem to be as follows:
Retrieving data ...