Cuda Code Optimization Techniques