Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Linux 8.1 error on IppInit() Error:ippStsWaterfall: Cannot load required library

AndrewC
New Contributor III
2,532 Views

I am using Linux Intel64 version of IPP8.1 ( part of Composer XE 2013 SP1) and when I call IppInit I get the following (non-fatal) error.

IppInit() Error:ippStsWaterfall: Cannot load required library, waterfall is used.

I am linking with the single threaded dynamically linked version
 

ldd shows

 libippvm.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippvm.so.8.1 (0x00002b666e51e000)
        libippvc.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippvc.so.8.1 (0x00002b666e732000)
        libippsc.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippsc.so.8.1 (0x00002b666e952000)
        libippr.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippr.so.8.1 (0x00002b666eb6b000)
        libippm.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippm.so.8.1 (0x00002b666ed70000)
        libippj.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippj.so.8.1 (0x00002b666ef9d000)
        libippdi.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippdi.so.8.1 (0x00002b666f1af000)
        libippcv.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippcv.so.8.1 (0x00002b666f3b4000)
        libippch.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippch.so.8.1 (0x00002b666f5dc000)
        libippcc.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippcc.so.8.1 (0x00002b666f7e3000)
        libippac.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippac.so.8.1 (0x00002b666fa00000)
        libippdc.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippdc.so.8.1 (0x00002b666fc0f000)
        libippi.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippi.so.8.1 (0x00002b666fe18000)
        libipps.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libipps.so.8.1 (0x00002b66700d6000)
        libippgen.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippgen.so.8.1 (0x00002b6670341000)
        libippcore.so.8.1 => /opt/intel/composer_xe_2013_sp1.3.174/ipp/lib/intel64/libippcore.so.8.1 (0x00002b667057f000)
[

0 Kudos
28 Replies
AndrewC
New Contributor III
481 Views

As requested, IPP library info before and after ippInit

IPP:ippAC SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippCC SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippCH SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippCore 8.1.1 (r42291)
IPP:ippCV SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippDC SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippDI SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippGEN SSSE3 (u8) 8.1.1 (r42291)
IPP:ippIP SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippJP SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippm SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippRR SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippSC SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippSP SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippVC SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippVM SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IppInit() Error:ippStsWaterfall: Cannot load required library, waterfall is used.
IPP:ippAC SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippCC SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippCH SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippCore 8.1.1 (r42291)
IPP:ippCV SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippDC SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippDI SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippGEN SSSE3 (u8) 8.1.1 (r42291)
IPP:ippIP SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippJP SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippm SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippRR SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippSC SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippSP SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippVC SSE4.1/4.2 (y8)+ 8.1.1 (r42291)
IPP:ippVM SSE4.1/4.2 (y8)+ 8.1.1 (r42291)

 

0 Kudos
AndrewC
New Contributor III
481 Views

And what you say about ippGEN would explain why the Centos 6.5 machine does not show the error  as it is an old SSSE3 machine with the following capabilities.

IPP:ippIP SSSE3 (u8) 8.1.0 (r41650)
SSE    :Y
SSE2   :Y
SSE3   :Y
SSSE3  :Y
SSE41  :N
SSE42  :N
AVX    :N
AVX2   :N
----------

OS Enabled AVX :N
AES            :N
CLMUL          :N
RDRAND         :N
F16C           :N

 

0 Kudos
Pavel_B_Intel1
Employee
481 Views

To remove ippGEN and other unnecessary domains from your application you should modify your Makefile or project settings to link only necessary IPP domains.

I have the question: why do you link your application with dynamic libraries? You use only several IPP functions and from my point of view to link the application with IPP static libraries gives much smaller footprint and small size of application package in the result.

0 Kudos
Pavel_B_Intel1
Employee
481 Views

vasci_ wrote:

And what you say about ippGEN would explain why the Centos 6.5 machine does not show the error  as it is an old SSSE3 machine with the following capabilities.

IPP:ippIP SSSE3 (u8) 8.1.0 (r41650)

SSE    :Y

SSE2   :Y

SSE3   :Y

SSSE3  :Y

SSE41  :N

SSE42  :N

AVX    :N

AVX2   :N

----------

OS Enabled AVX :N

AES            :N

CLMUL          :N

RDRAND         :N

F16C           :N

 

ippGEN has special optimization for SSSE3 - it is why no problem on this configuration.

Pavel

0 Kudos
AndrewC
New Contributor III
481 Views

Pavel,

I DO NOT link against ippgen or any unnecessary IPP domains. That is why it is odd ippgen is being loaded.

I link against the IPP dynamic libraries as the applications is not monolithic. It is a number of .so that link against IPP. I would end up with all sorts of initialization issues if each .so linked against it's own copy of a static IPP. It is much cleaner to link against the shared IPP libs.

Andrew


 

0 Kudos
AndrewC
New Contributor III
481 Views

OK , problem solved.

icpc -ipp <options> -o myapp

on the link line causes a dependency on all the IPP libs. Removing -ipp and listing only the libs needed fixes the ippgen dependency

 

 

Andrew

0 Kudos
AndrewC
New Contributor III
481 Views

Just as a suggestion maybe the default behavior of -ipp on the link line should be to NOT auto-link deprecated libraries.

0 Kudos
Pavel_B_Intel1
Employee
481 Views

Andrew,

thank you for the info.

Best regards, Pavel

0 Kudos
Reply