The MASM Forum

General => The Workshop => Topic started by: K_F on October 19, 2015, 05:57:23 PM

Title: Cuda.. PTX assembly... etc..
Post by: K_F on October 19, 2015, 05:57:23 PM
Never one to be 'happy enough'.... with DirectX/OpenGl, I've been looking through the NVidia development systems... (Cuda, PhysX..etc) https://developer.nvidia.com/cuda-zone (https://developer.nvidia.com/cuda-zone)

Most of these type of dev kits, disappointingly, start off at the C/C++ level, but I pleasantly surprised to find PTX assembly on the the NVidia gpu's..
Although PTX looks to have a C-like management structure.. it's instructions are assembly.

Farabi, sometime ago asked whether it was possible to use the gpu as as extra number cruncher...

Yes you can.. and it looks the the parallel gpu's all can be configured 'on the fly'. This is great as the gpu's can be used for other 'applications', besides graphics. They're essentially a couple hundred processors (FPU/Integer) running in parallel === POWER!  :dazzled:

So what you can do.. is make your own applications (graphics or other) that run on the GPU chip...
Why re-invent the wheel.... Cos you can and have fun doing it.

I must have a look at other graphics cars and see what they have.
:biggrin:
Title: Re: Cuda.. PTX assembly... etc..
Post by: GoneFishing on October 20, 2015, 12:58:44 AM
NVIDIA web site  - golden mine of good resources  :t
As to " use the gpu as as extra number cruncher" - most interesting thing about it that it was used even in pre-CUDA era.
See :
http://gamma.cs.unc.edu/GPUSORT/
http://gamma.cs.unc.edu/GPUFFTW/

By the way , NVIDIA have added new extensions in OpenGL 4.5
Screenshot below illustrates this technology sample (https://github.com/nvpro-samples/gl_cadscene_rendertechniques)
Title: Re: Cuda.. PTX assembly... etc..
Post by: K_F on October 20, 2015, 09:19:53 AM
Still working my way through this..
Asked Nvidia for a 'pure assembler' version of PTX and more explicit info on the GPU cpu's.
I'm probably asking for too much... but if they're ok with this.. I'll be able to play quite nicely...
:biggrin:
Title: Re: Cuda.. PTX assembly... etc..
Post by: GoneFishing on October 20, 2015, 09:23:43 AM
Their CUDA toolkit now contains compiler SDK , not sure if that's what you want. A lot of info!
You may join registered developers program ...

PTX reference:
http://docs.nvidia.com/cuda/pdf/ptx_isa_4.1.pdf

Some extras:
Should I look into PTX to optimize my kernel? (http://stackoverflow.com/questions/8080956/should-i-look-into-ptx-to-optimize-my-kernel)
asfermi: An assembler for the NVIDIA Fermi Instruction Set (https://code.google.com/p/asfermi/)
Title: Re: Cuda.. PTX assembly... etc..
Post by: K_F on October 20, 2015, 09:44:29 AM
I've done all that...

What I'm looking for is the explicit cpu hardware structure/info (as you get with Intel docs).
One could get this with the Transputer, but Nvidia (also Xmos - I dumped them) have 'relieved' us of this pain... which I naturally require  :icon_mrgreen:, by going up a level (they mention this in the docs).

The whole idea is to control (if possible) every aspect of one's code, as it passes through the array of CPUs on the GPU, instead of relying on the compiler to do this for you.
It's essentially the same idea as current FPGA dev kits where you decide, where/how on the chip, the hardware/software executes.

:biggrin:
Title: Re: Cuda.. PTX assembly... etc..
Post by: GoneFishing on October 20, 2015, 10:00:45 AM
I think it's closed information.
The only publicly available GPU internals disclosed by NV are here:
ftp://download.nvidia.com/open-gpu-doc/DCB/1/DCB-4.0-Specification.html
Title: Re: Cuda.. PTX assembly... etc..
Post by: K_F on October 20, 2015, 05:43:51 PM
Ja.. no reply yet  :biggrin: :biggrin:.
Oh well, no harm in trying...

Thanks for the info.. looks interesting.