why GTX 780 must be initiated with OPENGL API?

I encounter a problem when I run some CUDA programs on GTX 780:
1.when I run the deviceQuery,deviceQuery can detect the GTX 780,but when I run the vectorAdd,the code tell me 'Failed to allocate device vector A ';
2.when I run the programs with OPENGL API in them,the programs run very well on GTX 780;
3.After I use the OPENGL API to initiate the GTX 780 in vectorAdd code,then the error information does not prompt;
because all the programs mentioned above can run well on GTX 680,so I can not find why the program do not run on GTX 780 and why GTX 780 need OPENGL API to initiate it.
I will very appreciate anyone who can teach me to solve this problem!