I have some questions about running CUDA on multicore system (Intel Core 2 Duo with WinXP in my case). Unfortunately I failed to find smth about this topic in programming guide.
While running several threads on multicore system (i.e. on host)
Can I invoke CUDA methods (such as cudaMemcpy() or kernel invocation) from different host threads? What is result of such invokations?
Should this calls be synchronized (i.e. can there be some problems if I accidentally invoke cudaMemcpy() from different threads simultaneously?)?.
While running CUDA in one thread (this questions relates to one-core systems too) what is result of such invokation:
kernel1<<< Dg, Db, Ns >>>(parameter); kernel2<<< Dg, Db, Ns >>>(parameter);
Is it guaranteed that kernel1 will e executed after kernel2 (I have some doubts since kernel invokations are declared to be asynchronous)?