It seems that syntax of PTX is undocumented - at least I was unable to find actual BNF grammar or reference implementation. Grammar from antlr project is greatly out-dated and don't contain instructions like ldmatrix/istypep
(and btw it has 3505 lines - much bigger than c++14 syntax)
Another project is much better however it's also incomplete. Official documentation is most vague & obscure reading for last years (previous champion) - it contains word "deprecated" 24 times. So it's time to do some disassembling
First remarkable thing is lots of high-entropy parts of data in .rodata section - this is glare sign of encryption, so I made decryptor. After looking at encrypted data we can discover several undocumented features
macros
.MACRO name [args];{ body of macro }.ENDMACRO
mov rbx, cs:macroMap_ptr
mov rdx, cs:ptxMacroFuncsFermi_membar_ptr
lea rsi, aMembar ; "membar"
mov rdi, [rbx]
call add_hash
mov rdi, [rbx]
mov rdx, cs:ptxMacroFuncsFermi_cvt_ptr
lea rsi, aCvt ; "cvt"
call add_hash
Комментариев нет:
Отправить комментарий