5 ms·
Finally a third independent source for x86 instruction timings, joining Agner [1] and instlatx64 [2]. Is the testing code open source? There is no obvious link
by BeeOnRope 8y ago
Finally a third independent source for x86 instruction timings, joining Agner [1] and instlatx64 [2].
Is the testing code open source? There is no obvious link from the main page.
[1] https://www.agner.org/optimize/#manuals https://www.agner.org/optimize/#manuals
[2] http://users.atw.hu/instlatx64/ http://users.atw.hu/instlatx64/
- andreas-a 8y agoThe testing code is not open source yet, but we plan to make it available in the near future. We are also working on a code analysis tool, similar to Intel's IACA, that uses the instruction data from http://www.uops.info/ http://www.uops.info/. Finally, we also plan to add data for AMD processors.
- BeeOnRope 8y agoCool. Is is the IACA-alike tool: https://github.com/RRZE-HPC/OSACA https://github.com/RRZE-HPC/OSACA ? It would be nice to see something with a more open and responsive development process compared to IACA.
- andreas-a 8y agoNo, this is a different IACA-like tool. Our tool is not public yet.
- BeeOnRope 8y agoOh cool, seems like we'll jump from zero to two direct competitors to IACA soon. I look forward to your tool (hopefully it can use the same IACA marker bytes so binaries and be compiled once for all these tools).
- romed 8y agoWhat about Google Exegesis project? They also infer instruction latency. https://github.com/google/EXEgesis https://github.com/google/EXEgesis
- BeeOnRope 8y agoYou are right, I had forgotten about that one. Do they actually provide results for various CPUs in human-readable form anywhere, or is it only a toolset for generating the benchmarks and collecting the results locally (plus PDF extraction to process the Intel SDM)?
- romed 8y agoI think they have internally tools for humans but the open source project only produces the machine-readable information intended to be consumed by compilers. If you look at their slide deck they have some kind of visualizer that explains dependency and port dispatch for a short snippet of asm.
- BeeOnRope 8y agoYeah I wasn't talking so much about machine vs human readable, but whether the results for various CPUs are available, published somewhere in the git repo or elsewhere. If not, then it's just a tool for getting the results yourself, on hardware you have - which is also very nice, but a different type of resource as compared to Agner's published guides for 20+ CPUs, and the uops.info tables, etc.