Intel® Math Kernel Library for Windows* OS User's Guide

Intel® Math Kernel Library for Windows* OS User's Guide

Intel® Math Kernel Library for Windows* OS User's Guide Intel® MKL - Windows* OS Document Number: 315930-027US Legal Information Contents Contents Legal Information................................................................................7 Introducing the Intel® Math Kernel Library...........................................9 Getting Help and Support...................................................................11 Notational Conventions......................................................................13 Chapter 1: Overview Document Overview.................................................................................15 What's New.............................................................................................15 Related Information.................................................................................15 Chapter 2: Getting Started Checking Your Installation.........................................................................17 Setting Environment Variables ..................................................................17 Compiler Support.....................................................................................19 Using Code Examples...............................................................................19 What You Need to Know Before You Begin Using the Intel® Math Kernel Library...............................................................................................19 Chapter 3: Structure of the Intel® Math Kernel Library Architecture Support................................................................................23 High-level Directory Structure....................................................................23 Layered Model Concept.............................................................................25 Contents of the Documentation Directories..................................................26 Chapter 4: Linking Your Application with the Intel® Math Kernel Library Linking Quick Start...................................................................................27 Using the /Qmkl Compiler Option.......................................................27 Automatically Linking a Project in the Visual Studio* Integrated Development Environment with Intel® MKL......................................28 Automatically Linking Your Microsoft Visual C/C++* Project with Intel® MKL..........................................................................28 Automatically Linking Your Intel® Visual Fortran Project with Intel® MKL..........................................................................28 Using the Single Dynamic Library.......................................................28 Selecting Libraries to Link with..........................................................29 Using the Link-line Advisor................................................................30 Using the Command-line Link Tool.....................................................30 Linking Examples.....................................................................................30 Linking on IA-32 Architecture Systems...............................................30 Linking on Intel(R) 64 Architecture Systems........................................31 Linking in Detail.......................................................................................32 Dynamically Selecting the Interface and Threading Layer......................32 Linking with Interface Libraries..........................................................33 Using the cdecl and stdcall Interfaces.........................................33 Using the ILP64 Interface vs. LP64 Interface...............................34 Linking with Fortran 95 Interface Libraries..................................36 3 Intel® Math Kernel Library for Windows* OS User's Guide Linking with Threading Libraries.........................................................36 Sequential Mode of the Library..................................................36 Selecting the Threading Layer...................................................36 Linking with Computational Libraries..................................................37 Linking with Compiler Run-time Libraries............................................38 Linking with System Libraries............................................................39 Building Custom Dynamic-link Libraries.......................................................39 Using the Custom Dynamic-link Library Builder in the Command-line Mode.........................................................................................39 Composing a List of Functions ..........................................................41 Specifying Function Names...............................................................41 Building a Custom Dynamic-link Library in the Visual Studio* Development System...................................................................42 Distributing Your Custom Dynamic-link Library....................................43 Chapter 5: Managing Performance and Memory Improving Performance with Threading.......................................................45 Threaded Functions and Problems......................................................45 Avoiding Conflicts in the Execution Environment..................................47 Techniques to Set the Number of Threads...........................................48 Setting the Number of Threads Using an OpenMP* Environment Variable......................................................................................48 Changing the Number of Threads at Run Time.....................................48 Using Additional Threading Control.....................................................50 Intel MKL-specific Environment Variables for Threading Control.....50 MKL_DYNAMIC........................................................................51 MKL_DOMAIN_NUM_THREADS..................................................52 Setting the Environment Variables for Threading Control..............53 Other Tips and Techniques to Improve Performance.....................................54 Coding Techniques...........................................................................54 Hardware Configuration Tips.............................................................54 Managing Multi-core Performance......................................................55 Operating on Denormals...................................................................56 FFT Optimized Radices.....................................................................56 Enabling Low-communication Algorithm in Cluster FFT..........................56 Using Memory Management ......................................................................56 Intel MKL Memory Management Software............................................56 Redefining Memory Functions............................................................56 Chapter 6: Language-specific Usage Options Using Language-Specific Interfaces with Intel® Math Kernel Library.................59 Interface Libraries and Modules.........................................................59 Fortran 95 Interfaces to LAPACK and BLAS..........................................61 Compiler-dependent Functions and Fortran 90 Modules.........................61 Using the stdcall Calling Convention in C/C++.....................................62 Compiling an Application that Calls the Intel® Math Kernel Library and Uses the CVF Calling Conventions..................................................62 Mixed-language Programming with the Intel Math Kernel Library....................63 Calling LAPACK, BLAS, and CBLAS Routines from C/C++ Language Environments..............................................................................63 4 Contents Using Complex Types in C/C++.........................................................64 Calling BLAS Functions that Return the Complex Values in C/C++ Code..........................................................................................65 Support for Boost uBLAS Matrix-matrix Multiplication...........................67 Invoking Intel MKL Functions from Java* Applications...........................68 Intel MKL Java* Examples........................................................68 Running the Java* Examples.....................................................69 Known Limitations of the Java* Examples...................................70 Chapter 7: Obtaining Numerically Reproducible Results Getting Started with Conditional Numerical Reproducibility ...........................72 Specifying the Code Branches....................................................................73 Reproducibility Conditions.........................................................................74 Setting the Environment Variable for Conditional Numerical Reproducibility......75 Code Examples........................................................................................75 Chapter 8: Coding Tips Example of Data Alignment.......................................................................77 Using Predefined Preprocessor Symbols for Intel® MKL Version-Dependent Compilation.........................................................................................78 Chapter 9: Working with the Intel® Math Kernel Library Cluster Software MPI Support............................................................................................79 Linking with ScaLAPACK and Cluster FFTs....................................................80 Determining

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    120 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us