Objet : Developers list for StarPU
Archives de la liste
Re: [Starpu-devel] data_unregister_submit() does not flush data from GPU to CPU
Chronologique Discussions
- From: Samuel Thibault <samuel.thibault@inria.fr>
- To: Aleksandr Mikhalev <aleksandr.mikhalev@kaust.edu.sa>
- Cc: starpu-devel@lists.gforge.inria.fr
- Subject: Re: [Starpu-devel] data_unregister_submit() does not flush data from GPU to CPU
- Date: Tue, 24 Jul 2018 18:41:58 +0200
- List-archive: <http://lists.gforge.inria.fr/pipermail/starpu-devel/>
- List-id: "Developers list. For discussion of new features, code changes, etc." <starpu-devel.lists.gforge.inria.fr>
- Organization: I am not organized
Please always keep the mailing list in Cc, so that I am not the only
recipient of the mail. Writing to me only means risking falling in
the middle of my vacations and thus not getting an answer for weeks,
or that I just don't have the time to answer and thus you would at
best get a terse answer, or worse, no answer at all... Conversely,
keeping the list in Cc means avoiding all these issues completely,
you'll involve all the community to help you, make the answers you
get available to everyone, and even archived for web crawlers to find
them whenever somebody has the same issue.
Aleksandr Mikhalev, le mar. 24 juil. 2018 19:32:57 +0300, a ecrit:
> At first, I thought it adds asynchronous task,
That's what it happens to be using for its duty yes, but that is not
the semantic. Notably, data transfers are not necessarily implemented
through tasks.
> If I use starpu_data_unregister(), data is brought back from GPU to CPU and
> handle is destroyed, but if I use starpu_data_unregister_submit(), handle
> is destroyed without copying at all, even if I wait for all tasks to
> finish. From my point of view, it is counterintuitive, that synchronous
> call copies data and asynchronous call does not copy data. Can you confirm,
> that this difference is intended?
It's not really intended, it just happens that it is what we ended up
implemented for simplicity since we didn't see how it could be used:
there is really not guarantee that starpu_task_wait_for_all() will wait
or starpu_data_unregister_submit() to complete.
> Proposed solution with data_acquire is much more advanced, adding
> explicit empty task to synchronise data is easier.
You can use your own empty task to get the synchronization, yes.
But again, what is your actual use case? Why is
starpu_data_unregister not enough for you? Or perhaps you want to use
starpu_data_fetch_on_node so that data is put back in the main memory
as soon as possible, without waiting for starpu_data_register? Or even
better, use starpu_data_wont_use() which does whatever StarPU should.
Samuel
- [Starpu-devel] data_unregister_submit() does not flush data from GPU to CPU, Aleksandr Mikhalev, 24/07/2018
- Re: [Starpu-devel] data_unregister_submit() does not flush data from GPU to CPU, Samuel Thibault, 24/07/2018
- Re: [Starpu-devel] data_unregister_submit() does not flush data from GPU to CPU, Aleksandr Mikhalev, 24/07/2018
- Re: [Starpu-devel] data_unregister_submit() does not flush data from GPU to CPU, Samuel Thibault, 24/07/2018
- Re: [Starpu-devel] data_unregister_submit() does not flush data from GPU to CPU, Aleksandr Mikhalev, 24/07/2018
- Re: [Starpu-devel] data_unregister_submit() does not flush data from GPU to CPU, Samuel Thibault, 24/07/2018
Archives gérées par MHonArc 2.6.19+.