Explain shader compilers and graphics APIs | NVIDIA