Cuda c program structure