- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
the parallel usage of ippiResizeSqrPixel works fine in a 32-Bit program, but has gaps when compiled in 64-Bit and running on more then 2 cores.
here is a VS2008 sample to illustrate the effect: www.j-k-s.com/test/ScaleTest.zip (compile in 32 & 64, and see the difference by scaling the window to force redraw).
any idea what's going wrong?
here is a VS2008 sample to illustrate the effect: www.j-k-s.com/test/ScaleTest.zip (compile in 32 & 64, and see the difference by scaling the window to force redraw).
any idea what's going wrong?
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Some experiments with VS2008 and VS20010 have shown that the compiler works incorrectly with structures. So different threads process the same piece of image.
There is an error in MS compiler :(
We recommend to use (1st or 2nd or 3rd):
- Intel compiler. It works right!
- Dynamic or threaded static libraries instead external parallelization with statics. They have parallelized version of resize.
- Workaround. To write a wrapper in which structure is replaced on separate variables.
Thanks,
Beg
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
1.small correction(ScaleTest.cpp; line.222)
if(id == nt-1) dr.height -=dr.y;
instead
if(id == nt-1) dr.height = droi.height - droi.y;
2. the last slice can be non whole for any image size
dr.height = droi.height % nt
instead
dr.height = droi.height / nt;
Thanks,
Beg
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks!
(why am i not surprised? :] )
(why am i not surprised? :] )
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page