3 ms·
I suspect that this compiler is generating ptx and not true native binaries for nvidia's architectures. Nvidia's proprietary compiler stack is still heavily inv
by fooblaster 10y ago
I suspect that this compiler is generating ptx and not true native binaries for nvidia's architectures. Nvidia's proprietary compiler stack is still heavily involved in the conversion of ptx ir to native binaries. Essentially.. this isn't a full open source stack.
- wujingyue 10y agoYou are right that gpucc still depends on NVIDIA's ptxas tool that translates PTX to native binaries. NVIDIA does not publish the specification of their native binaries. Besides that, it is fully open-source.
- magicalist 10y ago> I suspect that this compiler is generating ptx and not true native binaries for nvidia's architectures It would take all of getting to page 2 of the article to confirm this instead of speculating... OTOH, there is an intriguing footnote that > We are also experimenting compiling [virtual ISA] PTX to [Nvidia's proprietary Shader ASSembler] SASS before program execution and embedding the SASS directly into the resultant binary but the paper mentions in the conclusion that a SASS spec is not publicly available. It would be interesting for someone involved to comment more on that. Experiments on reverse engineering the compiled PTX results? If implementing a replacement for nvcc gave these gains, I would imagine being able to control an offline version of the (normally JIT) compilation to SASS would also yield large benefits. It would likely be incredibly architecture dependent, but for the big machine learning projects that still might be worth the expense.
- fooblaster 10y agoOpen source graphics driver implementations (nouveau) have been able to reverse engineer some of the encodings of fermi, kepler, maxwell, etc by fuzzing the sass disassembler provided with the cuda distribution.
- jrk 10y agoIn addition to open source drivers, there has been work to reverse engineer the binary formats and write open source assemblers for recent versions of SASS (e.g., https://github.com/NervanaSystems/maxas https://github.com/NervanaSystems/maxas).
- jlebar 10y ago> the paper mentions in the conclusion that a SASS spec is not publicly available. It would be interesting for someone involved to comment more on that. Experiments on reverse engineering the compiled PTX results? I'm one of the people implementing this stuff in upstream clang/llvm. I'm not aware of any experiments internal or otherwise where we've tried to compile to SASS. We believe that there would be some performance gains to be had, but it's a really big project, even if we had an ISA, which at the moment we do not.