- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi,
I am running an application which is using header files as below:
#include
#include "vadg729fp.h"
#include "owng729fp.h"
#include "aux_fnxs.h"
#include
#include "scratchmem.h"
#include "ippdefs.h"
#include
#include
#include "g729fpapi.h"
#include "scratchmem.h"
And I am linking the following libs statically:
ippcore.lib,
ipps.lib
ippsc.lib
And I am using the following dlls at run time:
ippcore-7.0.dll,
ipps-7.0.dll,
ippsc-7.0.dll
libiomp5md.dll
The applications works fine on my machine where 7.0 IPP is installed.
But when I copy the exe and dlls on to the other machine and start it. It throws an error saying "Error at loading of IppSP library" No DLLs were found in the waterfall procedure"
Please let me if Iam missing any libs to include or dlls at run time for the above header files.
Thanks
Manjula Reddy
I am running an application which is using header files as below:
#include
#include "vadg729fp.h"
#include "owng729fp.h"
#include "aux_fnxs.h"
#include
#include "scratchmem.h"
#include "ippdefs.h"
#include
#include
#include "g729fpapi.h"
#include "scratchmem.h"
And I am linking the following libs statically:
ippcore.lib,
ipps.lib
ippsc.lib
And I am using the following dlls at run time:
ippcore-7.0.dll,
ipps-7.0.dll,
ippsc-7.0.dll
libiomp5md.dll
The applications works fine on my machine where 7.0 IPP is installed.
But when I copy the exe and dlls on to the other machine and start it. It throws an error saying "Error at loading of IppSP library" No DLLs were found in the waterfall procedure"
Please let me if Iam missing any libs to include or dlls at run time for the above header files.
Thanks
Manjula Reddy
링크가 복사됨
9 응답
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Please check first if these dlls are available in the your system paths.
--Gennady
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Quoting Gennady Fedorov (Intel)
Please check first if these dlls are available in the your system paths.
--Gennady
I have installed Intel IPP 7.0. All dlls are available on my machine.
The problem is not in my machine. My application compiles and runs fine on my machine.
But it fails and throw the above given error on other machines where 7.0 Intel IPP is not installed.
I think the exe contains the static link libraries and Iam copying the dlls mnetioned above to the application folder.
I want to know whether any other dll or lib is needed to run this app successfully on others machine.
By the way my app is a service.
Thanks,
Manjula Reddy
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hello,
DLLs you listed are IPP cpu-specific libraries dispatchers. In order to run application you also need to provide those cpu-specific IPP DLLs (like ippsw7-7.0.dll, ippsv8-7.0.dll and so on)
Regards,
Vladimir
DLLs you listed are IPP cpu-specific libraries dispatchers. In order to run application you also need to provide those cpu-specific IPP DLLs (like ippsw7-7.0.dll, ippsv8-7.0.dll and so on)
Regards,
Vladimir
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi Vladimir,
When I was using Intel IPP6.1 version I was using the following dlls:
ippcore-6.1.dll
ipps-6.1.dll
ippsc-6.1.dll
ippscpx-6.1.dll
ippspx-6.1.dll
ippsr-6.1.dll
ippsrpx-6.1.dll
libguide40.dll
There was no issue with these dlls on other machines also.
Please let me know the exact dlls equivalent to the above 6.1 dlls.
FYI: Iam not using ippsr.lib in my new app(7.0 version). I was using ippsr.lib in my old app(6.1 version).
Thanks
Manjula Reddy
When I was using Intel IPP6.1 version I was using the following dlls:
ippcore-6.1.dll
ipps-6.1.dll
ippsc-6.1.dll
ippscpx-6.1.dll
ippspx-6.1.dll
ippsr-6.1.dll
ippsrpx-6.1.dll
libguide40.dll
There was no issue with these dlls on other machines also.
Please let me know the exact dlls equivalent to the above 6.1 dlls.
FYI: Iam not using ippsr.lib in my new app(7.0 version). I was using ippsr.lib in my old app(6.1 version).
Thanks
Manjula Reddy
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
IPP is libraries of processor-specific optimized code. You need to provide approporiate cpu-specific libraries on your target system. As I can see you only used PX (generic C code) libraries from IPP, meaining you did not utilize SSE vector instructions at all. Do you have any specific reason for that approach? What is your target system? Please check capabilities of your target system and choose appropriate cpu-specific library from distribution. You may need to review IPP KB article Understanding SIMD Optimization Layers and Dispatching in the Intel IPP 7.0 Library for more details. Note, IPP 7.0 does not include PX libraries by default, they are available as a separate download package.
Regards,
Vladimir
Regards,
Vladimir
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi Vladimir,
I am using Windows XP Professional.Service Pack2.
Acer Incorporated Intel. Pentium4 CPU.2.66GHZ.
My question is why am able to run my app with the 7.0 dlls on my machine and why not on other XP machines with same configuration. Is it because I installed Intel 7.0 on my machine and the required dlls are linked automatically.
I used dependency walker to know which dlls are missed on the other machine. But am not able to make it out.
The other testing machine is also Windows XP.SP2. Please let me know exact list of dlls to be used. Please Help me out in this regard.
Thanks,
Manjula Reddy
I am using Windows XP Professional.Service Pack2.
Acer Incorporated Intel. Pentium4 CPU.2.66GHZ.
My question is why am able to run my app with the 7.0 dlls on my machine and why not on other XP machines with same configuration. Is it because I installed Intel 7.0 on my machine and the required dlls are linked automatically.
I used dependency walker to know which dlls are missed on the other machine. But am not able to make it out.
The other testing machine is also Windows XP.SP2. Please let me know exact list of dlls to be used. Please Help me out in this regard.
Thanks,
Manjula Reddy
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
That would be much easier if you spend some time to review documentation I was reffering to.
That is you need ippcore-7.0.dll (this library does not have cpu-specific counterpart libs), ipps-7.0.dll and ippsw7-7.0.dll (dispatcher and Pentium4 specific library),ippsc-7.0.dll and ippscw7-7.0.dll. If you want to take additional performance benefits from the latest processor generations you may also want toadd appropriate cpu-specific libraries (according the table). The IPP dispatcher will automatically detect your target processor at run time and load appropriate cpu specific library. If you do not provide appropriate library with your application dispatcher will look for compatible libraryfrom previous generations. For example, you can run application on Sandy Bridge systemand provide only w7 libraries (SSE2) by whatever reason you have. That will work but you will not use the latest architectural improvements.
Regards,
Vladimir
The following table lists the SIMD architecture codes supported by version 7.0 of the Intel IPP library.
Platform | Architecture | SIMD Requirements | Processor / architecture | Notes |
IA-32 | w7 | SSE2 | P4, Xeon, Centrino | SSE2 default |
v8 | Supplemental SSE3 | Core 2, Xeon 5100, Atom | ||
s8 | Supplemental SSE3 (compiled for Atom) | Atom | ||
p8 | SSE4.1, SSE4.2 and AES-NI | Penryn, Nehalem, Westmere | see next section | |
g9 | AVX | Sandy Bridge architecture | ||
Intel 64 (EM64T) | m7 | SSE3 | Prescott | SSE3 default |
u8 | Supplemental SSE3 | Core 2, Xeon 5100, Atom | ||
n8 | Supplemental SSE3 (compiled for Atom) | Atom | ||
y8 | SSE4.1, SSE4.2, AES-NI | Penryn, Nehalem, Westmere | see next section | |
e9 | AVX | Sandy Bridge architecture |
For non-Intel based processors support, pleaseread Use Intel IPP on Intel or Compatible AMD* Processors.
That is you need ippcore-7.0.dll (this library does not have cpu-specific counterpart libs), ipps-7.0.dll and ippsw7-7.0.dll (dispatcher and Pentium4 specific library),ippsc-7.0.dll and ippscw7-7.0.dll. If you want to take additional performance benefits from the latest processor generations you may also want toadd appropriate cpu-specific libraries (according the table). The IPP dispatcher will automatically detect your target processor at run time and load appropriate cpu specific library. If you do not provide appropriate library with your application dispatcher will look for compatible libraryfrom previous generations. For example, you can run application on Sandy Bridge systemand provide only w7 libraries (SSE2) by whatever reason you have. That will work but you will not use the latest architectural improvements.
Regards,
Vladimir
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hello Manjula,
What Vladimir is trying to say is that the short list of DLL files you distributed with the old version of your application worked, but did not take advantage of the SSE acceleration that IPP provides. In your list above, quoted below,
When I was using Intel IPP6.1 version I was using the following dlls:
ippcore-6.1.dll
ipps-6.1.dll
ippsc-6.1.dll
ippscpx-6.1.dll
ippspx-6.1.dll
ippsr-6.1.dll
ippsrpx-6.1.dll
libguide40.dll
There was no issue with these dlls on other machines also.
You are providing just enough to run the IPP library an any processor, but without any of the optimizations needed to get the best performance from your processor. You need to distribute all of the processor-specific variants of the library to insure you get maximum performance on any given machine.
What you should have been distributing with your old application that is using the 6.1 version of the library follows:
ippcore-6.1.dll
libiomp5md.dll
ipps-6.1.dll
ippspx-6.1.dll
ippsp8-6.1.dll
ippss8-6.1.dll
ippst7-6.1.dll
ippsv8-6.1.dll
ippsw7-6.1.dll
ippsc-6.1.dll
ippscpx-6.1.dll
ippscp8-6.1.dll
ippscs8-6.1.dll
ippsct7-6.1.dll
ippscv8-6.1.dll
ippscw7-6.1.dll
ippsr-6.1.dll
ippsrpx-6.1.dll
ippsrp8-6.1.dll
ippsrs8-6.1.dll
ippsrt7-6.1.dll
ippsrv8-6.1.dll
ippsrw7-6.1.dll
I've grouped them so they make more sense. The first group are some "overhead" or "core" components. The other three groups represent the SP library domain, the SC library domain and the SR library domain. Within each of the last three groups (domains) are the PX, P8, S8, T7, V8, and W7 library optimizations. Each optimization component within a library domain give optimimum performance for a specific processor architecture (see Vladimir's table from a prior post). If you exclude the optimizations within each library domain your application requires you are not allowing your application to take full advantage of the IPP library.
In version 7.0 of the IPP library, the optimization levels were changed and the SR domain was removed. Therefore, based on your list above, you should be distributing the following DLL files with your 7.0 based application:
ippcore-7.0.dll
libiomp5md.dllipps-7.0.dll
ippsg9-7.0.dll
ippsp8-7.0.dll
ippss8-7.0.dll
ippsv8-7.0.dll
ippsw7-7.0.dll
ippsc-7.0.dll
ippscg9-7.0.dll
ippscp8-7.0.dll
ippscs8-7.0.dll
ippscv8-7.0.dll
ippscw7-7.0.dll
Same reasoning as abovefor the 6.1 library, just a slightly different list of processor optimizations due to changes from 6.1 to 7.0.
Paul
- 신규로 표시
- 북마크
- 구독
- 소거
- RSS 피드 구독
- 강조
- 인쇄
- 부적절한 컨텐트 신고
Hi Paul and Vladimir,
Thanks a lot for all your help and explanation.
Actually I have no knowledge regarding processor specific variants and how to indentify their respective dlls from the list, So I could not take a deceison on choosing the dlls.Now I got some idea reading your postand I have followed your suggestion and my issue got resolved.
Thanks once again for all your help,
Manjula Reddy
Thanks a lot for all your help and explanation.
Actually I have no knowledge regarding processor specific variants and how to indentify their respective dlls from the list, So I could not take a deceison on choosing the dlls.Now I got some idea reading your postand I have followed your suggestion and my issue got resolved.
Thanks once again for all your help,
Manjula Reddy
