Objet : Developers list for StarPU
Archives de la liste
- From: Albert Sidelnik <sidelnik@gmail.com>
- To: Cyril Roelandt <cyril.roelandt@inria.fr>
- Cc: starpu-devel <starpu-devel@lists.gforge.inria.fr>
- Subject: Re: [Starpu-devel] Data interfaces in StarPU
- Date: Tue, 28 Aug 2012 09:10:20 -0500
- 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>
Hi Cyril,
I was under the impression that the copy/allocate registered routines (e.g. copy_ram_to_ram, allocate_variable_buffer_on_node) would also be invoked even for CPU->CPU tasks. If not, where/how does that occur?
What I meant by passing pointers around is the situation where I would like a codelet to propagate (or forward) data through a chain of codelets without having to allocate and copy the data when each codelet starts. Instead I would like to just pass on an address to the original data among the chain of codelets. I hope that makes sense, and if not, I can give you a better example what I am trying to do.
thanks!
On Tue, Aug 28, 2012 at 6:22 AM, Cyril Roelandt <cyril.roelandt@inria.fr> wrote:
Hello !I am not sure that diving into the internals of StarPU will really help you figure out what's going on in your interface.
On 08/28/2012 06:48 AM, Albert Sidelnik wrote:
I was hoping that somebody could explain how/where the routines that are
part of the data interface system work. I am implementing my own interface
that is based on the "variable interface" but instead of allocating new
data or copying data, I only pass pointers around (somewhat similar to the
cl_arg argument). Maybe I am missing something, but the allocate and copy
routines never seem to be invoked. If what I am trying to do is impossible
or makes no sense, are there any better alternative options of using the
data management system but without having to allocate data internally?
In order to trigger a a call to your copy function, you could do something like this:
1) Register a piece of data on a CPU using your interface
2) Submit a task that must be executed on an OpenCL device (or a CUDA device, but not a CPU)
3) StarPU will then try to copy the piece of data you registered to the OpenCL device, and will do this by calling the "copy_ram_to_opencl_async" function of your interface.
What do you mean by "pass pointers around" ? If you modify the piece of data you registered on the CPU, the OpenCL/CUDA pointer is no longer pointing to a valid piece of data, so you probably have to make a copy.
Maybe showing us some code could help :)
WBR,
Cyril Roelandt.
- [Starpu-devel] Data interfaces in StarPU, Albert Sidelnik, 28/08/2012
- Re: [Starpu-devel] Data interfaces in StarPU, Cyril Roelandt, 28/08/2012
- Re: [Starpu-devel] Data interfaces in StarPU, Albert Sidelnik, 28/08/2012
- Re: [Starpu-devel] Data interfaces in StarPU, Cyril Roelandt, 28/08/2012
- Re: [Starpu-devel] Data interfaces in StarPU, Albert Sidelnik, 28/08/2012
- Re: [Starpu-devel] Data interfaces in StarPU, Cyril Roelandt, 28/08/2012
Archives gérées par MHonArc 2.6.19+.