memory bound

Visual profiler point me tat my kernel is memory bound. What does it mean and how to optimize it?

I think there are too many memory transfers from the gpu ram. You might consider recalculating some variables or store them in the shared memory and registers instead of saving them in the global memory.

It means that performance of your code is limited by its memory accesses, not by computing. Look at these sections in the Best Practices Guide:

[url=http://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html#bandwidth]Best Practices Guide :: CUDA Toolkit Documentation
[url=http://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html#memory-optimizations]Best Practices Guide :: CUDA Toolkit Documentation