3 ms·
Yeah there is definitely some redundancy here, but there were reasons I wrote these tools. There are multiple sources that provide instruction timings. Agner's
by Asm2D 7y ago
Yeah there is definitely some redundancy here, but there were reasons I wrote these tools. There are multiple sources that provide instruction timings. Agner's instruction tables are amazing, but they cover only a single microarchitecture at a time, so it's really difficult to compare multiple microarchitectures. Intel's online intrinsics guide only shows instruction latencies of few latest microarchitectures, etc... Basically before AsmGrid it was time consuming for me to verify whether the instructions I have selected would perform well on a majority of machines that I target.
I wrote AsmGrid initially for myself to explore AsmDB data and to spot possible errors. Then I wrote CULT just for fun as I wanted to see whether it's possible to write such tool based on AsmJit. CULT basically iterates over AsmJit instruction database, checks whether instructions (with various signatures) can be executed, and then creates JIT code for executing them either in parallel or sequencially. It works really well and the testing can be easily done in user space.
In other words, I wanted a table of instructions and their timings where I can compare several microarchitectures at the same time during development and AsmGrid provides that. The only downside is that I cannot test all microarchitectures myself and when I make changes to support more instructions a re-run is necessary.
- BeeOnRope 7y agoRight, so CULT is maybe not the redundant one. Maybe the uops.info guys should use CULT, I dunno. Also, if it's for fun, anything goes, of course. I just feel sometimes like there is a lot of division of effort: it would be nice to have a standard single data source for instruction performance attributes. I am surprised I never ran across this before, because when I found uops.info, I was like "finally, this stuff is online and linkable" - but maybe that already happened earlier with ASMGrid? Anyways, I can run this on SKL, SKX, CNL for you.
- Asm2D 7y agoThanks! Let's continue on that issue page.