Twoje pytanie są super bardzo podstawowe. Przejrzyj sobie jakąś dokumentację, zastanów się i najlepiej dopiero wtedy zadaj pytania.
Aczkolwiek, na pytania mogę odpowiedzieć:
Nwm czy można wgl korzystać z RAM w programach na kartę.
Tak, można, ale jeżeli z karty odwołujesz się do RAMu systemowego, to to leci po szynie PCI-Express, a to pociąga za sobą duże opóźnienia i dość niski transfer. Aby osiągnąć rozsądną wydajność, ilość odwołań z poziomu karty do VRAMu musi być dużo większa niż do RAMu systemowego.
Czy wątek na karcie graficznej może utworzyć kolejny?
W OpenCLu 2.0 tak. Podobnie w świeżych wersjach CUDA. Ale musisz mieć na uwadze to, że wątki na GPGPU powinny żyć bardzo krótko i być ich bardzo dużo naraz (tysiące), by karta mogła nimi odpowiednio zarządzać i rozwinąć skrzydła.
Czy każdy program na kartę to shader?
Nazewnictwo zależy od API i generalnie nie wpływa na możliwości. W OpenGLu/ DirectX masz Vertex Shader, Pixel Shader, Geometry Shader, itd oraz właśnie Compute Shader. Natomiast OpenCL nie używa pojęcia shader, a służy przede wszystkim do wykonywania obliczeń na kartach GPGPU.