- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sample code:
[cpp]
#include
#include
#include
#include "ipp.h"
int main(int, char *[])
{
ippStaticInit();
const IppiBorderType bt = ippBorderConst;
IppiSize roi;
roi.width = 400;
roi.height = 500;
std::cout << "in is " << roi.width << "x" << roi.height << std::endl;
int in_stride = 0;
Ipp32f *in = ippiMalloc_32f_C1(roi.width,roi.height,&in_stride);
assert( in != NULL );
IppStatus status = ippiSet_32f_C1R(0.0f,in,in_stride,roi);
assert( status == ippStsNoErr );
std::cout << "in_stride is " << in_stride << " bytes" << std::endl;
int out_stride = 0;
Ipp32f *out = ippiMalloc_32f_C1(roi.width,roi.height,&out_stride);
assert( out != NULL );
std::cout << "out_stride is " << out_stride << " bytes" << std::endl;
int v_buffer_size = 0;
status = ippiFilterScharrVertGetBufferSize_32f_C1R(
roi,
&v_buffer_size );
assert( status == ippStsNoErr );
Ipp8u *buffer = ippsMalloc_8u(v_buffer_size);
assert(buffer != NULL);
std::cout << "allocated " << v_buffer_size << " bytes for buffer" << std::endl;
status = ippiFilterScharrVertBorder_32f_C1R(
in, in_stride,
out, out_stride,
roi,
bt,
0.0f,
&buffer[0] );
assert( status == ippStsNoErr );
ippiFree(in);
ippiFree(out);
ippsFree(buffer);
return 0;
}
[/cpp]
#include
The code segmentation faults on the ippiFilterScharrVertBorder_32f_C1R call. Compiled with:
g++ -g -I/opt/intel/ipp/include -o debug-scharr.cpp.o -c debug-scharr.cpp g++ -g debug-scharr.cpp.o -o debug-scharr \\\\ /opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64/libippcv_l.a \\\\ /opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64/libippi_l.a \\\\ /opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64/libipps_l.a \\\\ /opt/intel/composer_xe_2011_sp1.10.319/ipp/lib/intel64/libippcore_l.a
uname -a: Linux babbage.local 3.4.6-2.fc17.x86_64 #1 SMP Thu Jul 19 22:54:16 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
OS: Fedora F17 64-bit
CPU: Intel Core i7-2600 @ 3.4GHz
IPP: 7.0.7.319 intel64
Two important points:
- Removing the ippStaticInit call stops it from crashing, this presumably uses the generic CPU code path instead of the optimised one.
- The horizontal filter routines work just fine (ippiFilterScharrHorizGetBufferSize_32f_C1R and ippiFilterScharrHorizBorder_32f_C1R).
Pretty sure this is a bug in the IPP.
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Adam,
Thank youa lot for the report and detialed test case. We will investigate it and let you know if any updates.
Best Regards,
Ying
Thank youa lot for the report and detialed test case. We will investigate it and let you know if any updates.
Best Regards,
Ying
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I forgot to mention I'm using the stock GCC for F17, gcc 4.7.0 20120507 (Red Hat 4.7.0-5).
I've also noticed that the Horiz routine also segfaults in our main application, but not in the test case above - I haven't investigated further though.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Adam,
Thanks for the update. I can reproduce the problem in VerticalBorder. The problem have been escalated to our developer team. We will keep you update.
Best Regards,
Ying
Thanks for the update. I can reproduce the problem in VerticalBorder. The problem have been escalated to our developer team. We will keep you update.
Best Regards,
Ying
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Adam,
I get notification from our engineer. When they try the code with IPP 7.1 gold, the problem was gone. So they marked the problem is fixed in IPP 7.1.
Would you like to try it and let me know if any problem. You can download IPP 7.1 from
http://registrationcenter.intel.com/irc_nas/2754/l_ipp_7.1.0.079.tgz
Best Regards,
Ying
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