|
Boost : |
Subject: Re: [boost] Synchronization (RE: [compute] review)
From: Thomas M (firespot71_at_[hidden])
Date: 2014-12-29 04:21:24
On 29/12/2014 03:23, Kyle Lutz wrote:
> On Sun, Dec 28, 2014 at 6:16 PM, Gruenke,Matt <mgruenke_at_[hidden]> wrote:
>> -----Original Message-----
>> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of Kyle Lutz
>> Sent: Sunday, December 28, 2014 20:36
>> To: boost_at_[hidden] List
>> Subject: Re: [boost] Synchronization (RE: [compute] review)
>>
>>> On Sun, Dec 28, 2014 at 4:46 PM, Gruenke,Matt wrote:
>>
>>>> My understanding, based on comments you've made to other reviewers, is
>>>> that functions like boost::compute::transform() are asynchronous when
>>>> the result is on the device, but block when the result is on the host.
>>>> This is what I'm concerned about. Is it true?
>>
>>> Yes this is correct. In general, algorithms like transform() are asynchronous
>>> when the input/output ranges are both on the device and synchronous when one
>>> of the ranges is on the host. I'll work on better ways to allow asynchrony in
>>> the latter case. One of my current ideas is add asynchronous memory-mapping
>>> support to the mapped_view class [1] which can then be used with any of the
>>> algorithms in an asynchronous fashion.
When you speak of input/output ranges on the host, to what kinds of
iterators do you refer to? Any input/output iterator kind (e.g.
iterators from a std:: container -> just tried a std::vector on
boost::compute::transform, didn't compile if provided as input range),
or iterators that are part of your library?
Thomas
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk