[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gnuradio-discuss
Subject:    Re: [Discuss-gnuradio] Message passing(connect) in C++
From:       marco Ribero <spam.marco.spam () gmail ! com>
Date:       2015-04-30 20:44:14
Message-ID: CACB=4qGXp=KGkXzOb5KQr5UV0_JLUk-rN+D-nMi+Cw-Z5Jh5bg () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Marcus, thank you very much for your deep answer.
Your proposal about the usage of
your_block::detail()->input(0)->buffer()->link seem very interesting, so I
shoulld evaluate if use this mechanism or only some memory allocation
created with malloc.

I'd prefer to simplify the life of user as much as possible..I'll put my
blocks on a repository, hoping that some user will use these blocks.

Your proposal of a hierarcly approach is interesting,but in my case could
be more problematic: user can have a DAG or graph flowgraph,and the reserch
of the next block,performed by each involved block,could add some
complexity, considering that I need to open connection only between
adjacent blocks.

I summarize what I'm doing: as thesis ,I'm trying to make a partial porting
over CUDA..so I'm re-implementing blocks with CUDA. Each block allocate a
circular buffer of device pages,passing these pointer with other info to
the next block(using a tag with a pointer to host memory). Now I want to
establish an initial handshake, because the following block could have
preferences(usually not mandatory,because often the first step of a block
is to copy data from global to shared memory,allowing some degree of
freedom) about incoming data(e.g. min-max dimension of each
page,min_multiple for input data of FFT,..). Each block receive data
throught device memory,elaborate all data and return a single useless
tap,in order to wake up other blocks..at the end of chain,data will be
copied into host memory.

Marco

[Attachment #5 (text/html)]

<div dir="ltr">Marcus, thank you very much for your deep answer.<div>Your proposal \
about the usage of  <span style="color:rgb(0,0,0);font-family:&#39;Times New \
Roman&#39;;font-size:medium">your_block::detail()-&gt;input(0)-&gt;buffer()-&gt;link  \
</span>seem very interesting, so I shoulld evaluate if use this mechanism or only \
some memory allocation created with malloc.</div><div><br></div><div>I&#39;d prefer \
to simplify the life of user as much as possible..I&#39;ll put my blocks on a \
repository, hoping that some user will use these \
blocks.</div><div><br></div><div>Your proposal of a hierarcly approach is \
interesting,but in my case could be more problematic: user can have a DAG or graph \
flowgraph,and the reserch of the next block,performed by each involved block,could \
add some complexity, considering that I need to open connection only between adjacent \
blocks.</div><div><br></div><div>I summarize what I&#39;m doing: as thesis ,I&#39;m \
trying to make a partial porting over CUDA..so I&#39;m re-implementing blocks with \
CUDA. Each block allocate a circular buffer of device pages,passing these pointer \
with other info to the next block(using a tag with a pointer to host memory). Now I \
want to establish an initial handshake, because the following block could have \
preferences(usually not mandatory,because often the first step of a block is to copy \
data from global to shared memory,allowing some degree of freedom) about incoming \
data(e.g. min-max dimension of each page,min_multiple for input data of FFT,..). Each \
block receive data throught device memory,elaborate all data and return a single \
useless tap,in order to wake up other blocks..at the end of chain,data will be copied \
into host memory.</div><div><br></div><div>Marco</div><div><br></div></div>



_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic