# Asynchronous CUDA transfer calls not behaving asynchronously [closed]

I am using my GPU concurrently with my CPU. When I profile memory transfers I find that the async calls in cuBLAS do not behave asynchronously.

I have code that does something like the following

cudaEvent_t event;
cudaEventCreate(&event);
// time-point A
cublasSetVectorAsync(n, elemSize, x, incx, y, incy, 0);
cudaEventRecord(event);
// time-point B
cudaEventSynchronize(event);
// time-point C


I'm using sys/time.h to profile (code omited for clarity). I find that the cublasSetVectorAsync call dominates the time as though it were behaving synchronously. I.e. the duration A-B is much longer than the duration B-C and increases as I increase the size of the transfer.

What are possible reasons for this? Is there some environment variable I need to set somewhere or an updated driver that I need to use?

I'm using a GeForce GTX 285 with Cuda compilation tools, release 4.1, V0.2.1221

This is cross-posted on StackOverflow

-
You shouldn't cross post questions. Pick one and run with it, if it doesn't get answers or is closed as off topic, then feel free to try the other if it will be a better fit. – tpg2114 Dec 5 '12 at 11:11
@MRocklin: In the stack exchange community, we strongly discourage cross-posting the exact same question on multiple SE sites. We recommend that you do one of two things: 1. Modify one of your questions so that it is qualitatively distinct from the other question; or 2. Delete one of your two duplicate posts. – Paul Dec 5 '12 at 14:04
I'm closing this question because it is cross-posted and already has an answer on stackoverflow. – Paul May 15 at 14:11

## closed as off topic by Paul♦May 15 at 14:09

Questions on Computational Science Stack Exchange are expected to relate to computational science within the scope defined in the FAQ. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about closed questions here.