Frequently Asked Question

Frequently Asked Question

This thread is intended to provide a list of FAQs with concise, but reasonably complete answers. It is a living document that will be updated frequently.

12 Beiträge / 0 neu
Letzter Beitrag
Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.

Quoting - Larry Wang (Intel)
This thread is intended to provide a list of FAQs with concise, but reasonably complete answers. It is a living document that will be updated frequently.

Q: How do I install the Intel C++ Compiler 11.0 Professional Edition for QNX* Neutrino* RTOS?

A:
If you have an 8.1 version of the Intel C++ Compiler for QNX* Neutrino* RTOS installed, you do need to uninstall it before installing this version. Please see the release documentation for the 8.1 compiler for uninstall instructions.
If you have an alpha or beta version of the Intel C++ Compiler 11.0 Professional Edition for QNX* Neutrino* RTOS installed, we strongly recommend that you uninstall it before installing the product version.

Installation Hints

When you select to download the tools on the web site you will be redirected to the Intel Software Products Registration Center. Once you have selected a product you will receive an e-mail with a license file and instruction on how to download the product. This license file is important as the tools will not work without it. We recommend that you save this file in the same location as other licenses for our software products. If this is the only product you have from Intel Corporation then we recommend that you copy the license file to c:Program FilesCommon FilesIntelLicenses. The license file directoryis set byenvironment variable INTEL_LICENSE_FILE.
The installation will ask you to activate the tools. This can be done by using the serial number (provided in the same e-mail as the license file) but then your system needs to be connected to the internet. The other method would be to use the license file.

You must have the QNX* Momentics* Development Suite installed before installing the compiler.

Please make sure that you do not have anti-virus or other system protection software set to silently block "suspicious" scripts or installers, as this can interfere with the installation.

The Intel C++ compiler for QNX can coexist with the standard (non-QNX) Intel C++ Compiler for Windows.

Recommended steps:

Copy the installation executable w_ccqnx_p_11.0.017_ia32.exe to a temporary location.
Run the self-extracting .exe-file.

The compiler will be installed as default to: c:IntelCompiler11.017cppqnx. The default installation master directory is C:Intel. If you select a different directory make sure there are no spaces in the directory path name.

Changing and Uninstalling Compiler

If you want to add or remove components of the installed product, rerun the product setup program (setup.exe) of the version currently installed. The setup program was unpacked to C:Program FilesIntelDownloadC++CompilerQNX11.0 by default.

When installing an updated version of the product, you do not need to remove the older version first. If you remove a newer version of the product you may have to install the integrations into Momentics* from the older version.

To uninstall the Intel C++ Compiler 11.0 Professional Edition for QNX* Neutrino* RTOS:

Run Add or Remove Programs from Windows* Start / Control Panel
Highlight the Intel C++ Compiler for QNX* Neutrino* RTOS version 11.0.xxx
Choose option Remove and follow all instructions.

To change to a different version of Intel C++ Compiler for QNX* Neutrino* RTOS, please run the Intel compiler environment setup script, iccvars.bat, using the desired version. The script is under cppqnxbin.

For example, to switch to version 015, run this script

C:IntelCompiler11.015cppqnxbiniccvars.bat

And then lanuch Momentics in this shell with command line below
%QNX_HOST%usrqdeeclipseqde.exe -vmargs -Xms256m -Xmx512m

Quoting - Larry Wang (Intel)
This thread is intended to provide a list of FAQs with concise, but reasonably complete answers. It is a living document that will be updated frequently.

Q: What are the hardware/software requirements for using this tool?

A:
System Requirements
As most modern laptops and desktops are powerful systems you should be able to use any of your systems containing the following:

Hardware:

A system based on an IA-32 architecture processor (minimum 450 MHz Intel Pentium II processor or greater - Intel Core or Intel Xeon processor family recommended)
1GB of RAM
500 MB of free hard disk space, plus an additional 300 MB during installation for download and temporary files
100 MB of hard disk space for the virtual memory paging file. Be sure to use at least the minimum amount of virtual memory recommended by the operating system.

Software:

Microsoft Windows XP*. Other Windows versions have not been tested apart from Windows 2000.

The following QNX* development product must be installed:
o QNX* Momentics* Development Suite 6.3.2

There are some additional patches which we recommend that you install. They are listed below just for completeness. The tools will work without the patches listed below if you avoid trying the very latest SSE3 instructions. So for full utilization of the capabilities of the Intel Atom processor please follow the steps below:

o Download an updated 2.17 version of binutils from http://community.qnx.com/sf/frs/do/viewRelease/projects.toolchain/frs.bi...
o Unzip win32-binutils-2.17.zip and copy ntox86-as-2.17 and ntox86-ld-2.17 to %QNX_HOST%usrbin as i386-pc-nto-qnx6.3.0-as and i386-pc-nto-qnx6.3.0-ld respectively (overwrite the old files)
o Additional components such as debugger may require update in order to support QNX* Momentics* IDE, please contact QNX http://www.qnx.com for further update if you run into binutil issue.

Quoting - Larry Wang (Intel)
This thread is intended to provide a list of FAQs with concise, but reasonably complete answers. It is a living document that will be updated frequently.

Q: How do I link my application with static Intel IPP libraries under QNX* Momentics* development tool?
A:
There are two ways to link static Intel IPP libraries: 1) without using IPP dispatch functions, and 2) with IPP dispatch functions

Without Dispatch Function
Single Processor Static Linkage
1. Include a processor-specific header ipp_xx.h (header file can be found from ipplp32toolsstaticlib) before the #include ipp.h , where xx denotes various IA-32 architecture processors:
xx: w7:Intel Pentium 4; s8: Intel Atom
2. Add merged libraries, followed by ippcore library into your project library list. To do this under QNX Momentics* IDE:
Properties-> QNX C/C++ Project ->Linker -> Category Extra libraries
For example: to include signal processing domain for linkage, the following libraries need to be added into library list (order needs to be maintained):

ippsmerged
ippcore

3. Call Intel IPP functions normally from your applications.

With Dispatch Function
1. Include ipp.h in your code,
2. Add the e-merged libraries followed by merged libraries and then the ippcore library into your project library list. To do this under QNX Momentics* IDE:
Properties-> QNX C/C++ Project ->Linker -> Category Extra libraries
For example: to invoke the signal processing API, the following libraries need to be added into library list (order needs to be maintained):

ippsemerged
ippsmerged
ippcore

3. Before calling Intel IPP functions, invoke the static IPP dispatch function ippStaticInit() first
4. Call Intel IPP functions normally from your applications.
See also Intel IPP - Intel IPP linkage models- quick reference guide in
http://software.intel.com/en-us/articles/intel-integrated-performance-pr...

Quoting - Larry Wang (Intel)
This thread is intended to provide a list of FAQs with concise, but reasonably complete answers. It is a living document that will be updated frequently.

I'm trying to use the static IPP libs with QNX but I can't figure out what *merged.a file to link in. My target processor is a Core2-duo so I think I need to #include before #include . But there is no libipppxmerged.a file in the installation. The installation has the following lib*merged.a files -- ace, ac, cce, cc, che, ch, cve, cv, dce, .... vm but no 'px' designator.

When I call ippsGetLibVersion() the linker reports unresolved reference to px_ippsGetLibVersion. How do I determine what lib*merged.a file to use?

Thanks,
Gary Anderson

Quoting - gary_andersonagilent.com

I'm trying to use the static IPP libs with QNX but I can't figure out what *merged.a file to link in. My target processor is a Core2-duo so I think I need to #include before #include . But there is no libipppxmerged.a file in the installation. The installation has the following lib*merged.a files -- ace, ac, cce, cc, che, ch, cve, cv, dce, .... vm but no 'px' designator.

When I call ippsGetLibVersion() the linker reports unresolved reference to px_ippsGetLibVersion. How do I determine what lib*merged.a file to use?

Thanks,
Gary Anderson

Hi Anderson,
You may link libippsmerged.a for px_ippsGetLibVersion.
In head file, 'px' means other intel arch except pentium 4 (w7)and atom(s8).For library file, it is distinguished by functionanity. E.g.,'ac'for Audio Coding library, 'cc'for Color Conversion library and 's' for Signal Processing.
Thanks.
-Yang

Quoting - Yang Wang (Intel)

Hi Anderson,
You may link libippsmerged.a for px_ippsGetLibVersion.
In head file, 'px' means other intel arch except pentium 4 (w7)and atom(s8).For library file, it is distinguished by functionanity. E.g.,'ac'for Audio Coding library, 'cc'for Color Conversion library and 's' for Signal Processing.
Thanks.
-Yang

Hi Yang,

I have an Intel SL9380 processor (Core2 duo) so I chose (perhaps incorrectly) the libippsmerged.a plus the libippcore.a static libraries. All references are resolved but the execution time on the SL9380 running at 1.8GHz is 10x to 100x slower than the same code running on a 2.1GHz Intel processor laptop (not sure what chip).

Is 'px' the proper header file and associated library to use with the SL9380? I haven't been able to find a table that associates processer number/type with IPP header file.

I'm compiling my code with the /arch:sse4.1 option. I've just added this option in the QNX IDE for compiler options and it appears on the console output when files are compiled by I'm not sure that the syntax is correct.

Thanks,
Gary

Quoting - gary_andersonagilent.com

Hi Yang,

I have an Intel SL9380 processor (Core2 duo) so I chose (perhaps incorrectly) the libippsmerged.a plus the libippcore.a static libraries. All references are resolved but the execution time on the SL9380 running at 1.8GHz is 10x to 100x slower than the same code running on a 2.1GHz Intel processor laptop (not sure what chip).

Is 'px' the proper header file and associated library to use with the SL9380? I haven't been able to find a table that associates processer number/type with IPP header file.

I'm compiling my code with the /arch:sse4.1 option. I've just added this option in the QNX IDE for compiler options and it appears on the console output when files are compiled by I'm not sure that the syntax is correct.

Thanks,
Gary

Hi Gray,
It's hard to say the performance issue since it runing on two different CPU arch and also it depends on how you evaluate the performance. Are you runing through remote connection or runing from local? How did you count the execution time?
Is the Core2 duo your final production target? The QNX IPP library is optimized for atom specifically (include ipp_s8.h for atom for link single processor specific static library only). px istargeted for general IA32 arch.
You also can specify the compilation option for your code.If you are compiling from Momentics IDE, you can add option in QNX C/C++ Project->Compiler->Other options, for example, add option: -Wc,-msse4.1 You can find more options by typing icc --help in command line.
For the IPP library link issue, you can refer to the document: start->Intel Software Development tools->Intel C++ compiler for QNX...->Intel Integrated Performance...->Intel IPP Document Index, especially the "Getting started with Intel IPP" which is located in c:/Intel/Compiler/11.1/005/qnx/Documentation/ipp/Getting_Started.htm.(assume you installed the compiler in c:/Intel). There are descriptions for how to using the intel IPP Static libraries.
Please let me know if any issues.
Thanks.
-Yang

Quoting - Yang Wang (Intel)

Hi Gray,
It's hard to say the performance issue since it runing on two different CPU arch and also it depends on how you evaluate the performance. Are you runing through remote connection or runing from local? How did you count the execution time?
Is the Core2 duo your final production target? The QNX IPP library is optimized for atom specifically (include ipp_s8.h for atom for link single processor specific static library only). px istargeted for general IA32 arch.
You also can specify the compilation option for your code.If you are compiling from Momentics IDE, you can add option in QNX C/C++ Project->Compiler->Other options, for example, add option: -Wc,-msse4.1 You can find more options by typing icc --help in command line.
For the IPP library link issue, you can refer to the document: start->Intel Software Development tools->Intel C++ compiler for QNX...->Intel Integrated Performance...->Intel IPP Document Index, especially the "Getting started with Intel IPP" which is located in c:/Intel/Compiler/11.1/005/qnx/Documentation/ipp/Getting_Started.htm.(assume you installed the compiler in c:/Intel). There are descriptions for how to using the intel IPP Static libraries.
Please let me know if any issues.
Thanks.
-Yang

Hi Yang,

Thanks for your help.

I'm measuring the execution time using the performance counting registers to measure elapsed time over a thousand iterations of the test code.

I been running the Momentics IDE on my workstation that's connected to my target via LAN. I run the target code via the Momentics IDE debugger.

When I add the -Wc,msse4.1 compiler option I get errors in the assembler phase -- 'Error: no such instruction: movsldup %xmm0,%xmm1' and a bunch of other assembler instructions. I'm wondering whether an Intel or GNU assembler is being used.

Thanks,
Gary

Quoting - gary_andersonagilent.com

Hi Yang,

Thanks for your help.

I'm measuring the execution time using the performance counting registers to measure elapsed time over a thousand iterations of the test code.

I been running the Momentics IDE on my workstation that's connected to my target via LAN. I run the target code via the Momentics IDE debugger.

When I add the -Wc,msse4.1 compiler option I get errors in the assembler phase -- 'Error: no such instruction: movsldup %xmm0,%xmm1' and a bunch of other assembler instructions. I'm wondering whether an Intel or GNU assembler is being used.

Thanks,
Gary

Hi Gary,
What's the version of icc compiler and QNX Momentics you use? I tried compiler 11.1.005 and QNX6.4.0(with IDE4.5) and everything goes fine. (from the disassembler, I can see movsldup instruction generated.).
The compiler will call the qnx assember in c:QNX640hostwin32x86usrbin folder.
Thanks.
-Yang

Quoting - Yang Wang (Intel)

Hi Gary,
What's the version of icc compiler and QNX Momentics you use? I tried compiler 11.1.005 and QNX6.4.0(with IDE4.5) and everything goes fine. (from the disassembler, I can see movsldup instruction generated.).
The compiler will call the qnx assember in c:QNX640hostwin32x86usrbin folder.
Thanks.
-Yang

Yang,

I have compiler version 11.0.017 and QNX 6.3.2 and IDE 4.0.1 -- a bit old. I'll be updating to the latest QNX and IDE soon.

Thanks,
Gary

Quoting - gary_andersonagilent.com

Yang,

I have compiler version 11.0.017 and QNX 6.3.2 and IDE 4.0.1 -- a bit old. I'll be updating to the latest QNX and IDE soon.

Thanks,
Gary

Hi Gary,
Please let me know if the upgrade solve the problem.
Thanks.
-Yang

Melden Sie sich an, um einen Kommentar zu hinterlassen.