インテル® マス・カーネル・ライブラリー 9.0 Linux* 版
リリースノート

目次

概要
ディレクトリー構造
インテル MKL 9.0 の新機能
動作環境
インストール
既知の制限事項
テクニカルサポートとフィードバック
関連製品とサービス
権利の帰属
著作権と商標について

 
 

概要

インテル® マス・カーネル・ライブラリー (インテル® MKL) は、工学、科学、金融系ソフトウェアの開発者向けに、線形代数ルーチン、高速フーリエ変換、ベクトル・マス・ライブラリー関数、乱数生成関数を提供します。これらのルーチンや関数はすべて、最新のインテル® Pentium® 4 プロセッサー、ストリーミング SIMD 拡張命令 3 (SSE3) およびインテル® 64 に対応したインテル® Xeon® プロセッサー、インテル® Itanium® 2 プロセッサー用に最適化されています。本ソフトウェアは、インテル以外の (x86) プロセッサーでも問題なく動作します。

インテル MKL は、線形代数機能として、LAPACK (ソルバーおよび固有ソルバー) に加え、複雑な数学ソフトウェアで必要な BLAS レベル 1 (ベクトル演算)、レベル 2 (ベクトル-行列演算)、レベル 3 (行列-行列演算) を提供します。FORTRAN 90/95 用に、少ない引数で LAPACK ドライバー・サブルーチンや計算サブルーチンを呼び出すことができるインターフェイスも用意しています。スパース連立方程式の解の算出用には、スパース BLAS レベル 1、レベル 2、レベル 3 のサポートに加え、直接法スパースソルバーおよび反復法スパースソルバーも用意しています。また、インテル MKL は、(変換の長さが 2 の累乗に限定されない) 混合基数に対応する多次元離散フーリエ変換 (1 次元、2 次元、3 次元) を備えています。偏微分方程式を解くために、効率的なプリコンディショナーを作成するいくつかの便利なツールを提供します。インテル MKL のベクトル化された超越関数 (ベクトル・マス・ライブラリー (VML) と呼ぶ) は、多くのプロセッサー上で、LibM (スカラー) 関数よりも優れたパフォーマンスと精度を実現します。ベクトル・スタティスティカル・ライブラリー (VSL) は、さまざまな確率分布および畳み込み/相関ルーチン用の高性能かつベクトル化された乱数ジェネレーターを提供します。また、浮動小数点値の区間に対して演算を行う関数群も用意しています。区間演算パッケージには、区間線形連立方程式のソルバー、逆区間行列のソルバー、および区間行列の正則性/特異性をテストするための関数が含まれています。インテル MKL の BLAS、LAPACK、直接法スパースソルバー (DSS)、FFT、VML、ポアソン・ライブラリー関数は、OpenMP* を使用してスレッド化されています。インテル MKL は完全にスレッドセーフです。

インテル MKL の一部の基となった BLAS の原版は http://www.netlib.org/blas/index.html から、 LAPACK の原版は http://www.netlib.org/lapack/index.html から入手できます。LAPACK の開発は、E. Anderson、Z. Bai、C. Bischof、S. Blackford、J. Demmel、J. Dongarra、J. Du Croz、A. Greenbaum、S. Hammarling、A. McKenney、D. Sorensen らによって行われました。LAPACK 用 FORTRAN 90/95 インターフェイスは、http://www.netlib.org/lapack95/index.html にある LAPACK95 パッケージと類似しています。すべてのインターフェイスは、純粋なプロシージャー用に提供されています。

本リリースのインテル MKL の一部の FFT 関数は、カーネギーメロン大学からライセンスを受けて、SPIRAL ソフトウェア生成システム (http://www.spiral.net/) によって生成されました。本リリースのインテル MKL の一部の FFT 関数は、ヒューストン大学からライセンスを受けて、UHFFT ソフトウェア生成システムによって生成されました。SPIRAL の開発は、Markus Püschel、José Moura、Jeremy Johnson、David Padua、Manuela Veloso、Bryan Singer、Jianxin Xiong、Franz Franchetti、Aca Gacic、Yevgen Voronenko、Kang Chen、Robert W. Johnson、Nick Rizzolo らによって行われました。

ディレクトリー構造

インテル MKL のディレクトリー構造については、「入門ガイド」(ファイル名: Getting_Started.htm) を参照してください。本ガイドは、インテル MKL 製品 Web サイト (http://www.intel.com/software/products/mkl/) にあります。

インテル MKL 9.0 の新機能

インテル MKL 8.1 からのパフォーマンスの向上

その他の機能の向上

動作環境

ハードウェア

インテル MKL をインストールして使用するには、サポートしているプロセッサーを搭載したシステムが必要です。ホストシステムは、700MB のディスク空き容量が必要です。

サポートしているプロセッサー - インテル MKL は、以下のプロセッサーをサポートしています。

ソフトウェア

インテル MKL を使用するには、サポートしているコンパイラーが必要です。

推奨ソフトウェア - 以下のソフトウェアをインテル MKL とともに使用することを推奨します。

インテル MKL は、以下のオペレーティング・システムをサポートしています。

インテル MKL は、以下のコンパイラーをサポートしています。

注意:

インストール

インテル MKL のインストール時に、インストールに関するガイダンスが提供されます。ステップごとにインストール手順を説明したファイル (ファイル名: Install.txt) へのリンクが示されます。このファイルは doc ディレクトリー以下にあります。

既知の制限事項

インテル MKL 9.0 におけるスパースソルバーの制限事項

インテル MKL 9.0 における FFT 関数の制限事項

インテル MKL 9.0 における LAPACK 関数の制限事項

インテル MKL 9.0 におけるベクトル・スタティスティカル・ライブラリー (VSL) 関数の制限事項

インテル MKL 9.0 における区間演算関数の制限事項

インテル MKL 9.0 における多倍長関数の制限事項

インテル MKL を使用する場合、明示的に 'libm' をリンクする必要があります。インテル MKL ライブラリー・ファイルへの参照の後、リンク行に '-lm' を追加してください。

インテル 64 対応のインテル・プロセッサー上では、GNU Fortran コンパイラー (バージョン 3.2.3) でコンパイルされたユーザープログラムは、-fno-f2c GNU Fortran コンパイラー・フラグが使用されていない場合、単精度値を返すインテル MKL の関数で正しくない結果を返すことがあります。GNU Fortran コンパイラーは、デフォルトでリターンレジスターの最初の 8 バイトが REAL*4 である (倍精度値として表現される) と想定しますが、インテル Fortran コンパイラーは、リターンレジスターの最初の 4 バイトが REAL*4 であると想定します。インテル MKL の動作は、インテル Fortran コンパイラーの動作と互換性があります。GNU Fortran コンパイラーの動作は、-fno-f2c フラグを使用することでインテル Fortran コンパイラーと互換になるように変更されます。

FFT、VML、VSL、および PDE サポート関数は Fortran 77 コンパイラーでは使用できません。

VSL 関数はすべて、現在の演算のエラーステータスを返します。例えば、VSL の API のデフォルトは、以前のバージョンの MKL ではサブルーチン形式でしたが、現在では関数形式です。つまり、Fortran のユーザーは、VSL ルーチンを関数として呼び出す必要があります。関数の呼び出し例:

 errstatus = vslrnggaussian(method, stream, n, r, a, sigma)
サブルーチンの呼び出し例:
 call vslrnggaussian(method, stream, n, r, a, sigma)
ただし、インテル MKL では、後方互換用にサブルーチン形式も用意しています。サブルーチン形式のインターフェイスを使用するには、手動で include\mkl.fi ファイル内の include 'mkl_vsl.fi' という行を include 'mkl_vsl_subroutine.fi' に変更し、mkl_vsl.fi ファイルの代わりに mkl_vsl_subroutine.fi ファイルを組み込みます。VSL の API 変更は、C/C++ ユーザーには影響しません。

ハイパースレッディング・テクノロジー (HT テクノロジー) は、各スレッドが異なる演算を実行している場合、またはプロセッサー上に十分に活用されていないリソースがある場合に特に有効です。インテル MKL は、このどちらにもあてはまりません。ライブラリーのスレッド化された部分が効率的に (利用可能なリソースの大半を使用して) 実行され、各スレッドで同一の演算を行っているためです。HT テクノロジーを有効にせずにインテル MKL を使用すると、より高いパフォーマンスを得られることがあります。

メモリー割り当て: より高いパフォーマンスを得るため、インテル MKL によって割り当てられたメモリーは解放されません。これは仕様で、インテル MKL ルーチンがメモリーバッファーを操作するのは 1 回 (割り当て) だけです。ツールによっては、これをメモリーリークとして報告することがあるため、注意してください。必要に応じて、メモリーを解放することができます。プログラムでインテル MKL の MKL_FreeBuffers() 関数を使用するか、各呼び出しの後に MKL_DISABLE_FAST_MM 環境変数を設定します (詳細は、doc ディレクトリーにあるテクニカル・ユーザー・ノートを参照してください)。しかし、これらの方法を使用してメモリーを解放しても、メモリーリークが報告されなくなるとは限りません。実際、ライブラリーを複数回呼び出す場合、各呼び出しごとに新しいメモリーの割り当てが必要になり、報告される数は増えることもあります。上記の方法で解放されなかったメモリーは、プログラムの終了時にシステムによって解放されます。各スレッドに割り当てられるバッファーの最大数は 32 です。この制限を回避するには、上記のようにメモリー管理を無効にします。

メモリー管理では、各スレッドに割り当てられるバッファーの数に制限があります。現在は、この数は 32 です。この制限を回避するには、上記のようにメモリー管理を無効にします。

Red Hat Enterprise Linux 3.0 では、正しいサポート・ライブラリーがリンクされていることを確認するために、環境変数 LD_ASSUME_KERNEL を設定する必要があります。
例: 'export LD_ASSUME_KERNEL=2.4.1'

テクニカルサポートとフィードバック

セルフヘルプおよびユーザーフォーラム

チュートリアル、基本操作のヒント、製品に関する既知の問題点、製品のエラッタ、互換性に関する情報、FAQ など、多くのセルフヘルプ情報については、インテル® ソフトウェア開発製品テクニカルサポート Web サイト (http://www.intel.com/software/products/support/index.htm) (英語) を参照してください。問題に対する解決策を素早く得たり、製品を効果的に使用するための情報を入手することができます。

インテル MKL ユーザーフォーラム (英語) (http://softwareforums.intel.com/ids/board?board.id=MKL) は、ユーザー同士の意見交換や専門家への質問などの場としてご利用いただけます。

問題の送信方法

インテルでは、お客様からのフィードバックを非常に重視しております。本製品で提供されるツールについてテクニカルサポートを利用したり、製品アップデートを入手するには、インテル® レジストレーション・センター (https://registrationcenter.intel.com/) で登録する必要があります。

インテル MKL に関する質問または問題は、サポート (https://registrationcenter.intel.com/support/) までお問い合わせください。

注意: 特定の国に対してアクセスを制限する必要があるソースコードが含まれている場合は、サポートが可能かどうかを判断するため、ソースコードを送る前にサポート担当者に確認してください。

インテル・プレミアサポートから問題を送信する場合は、次の手順に従ってください。

  1. ブラウザーで Java* および Java スクリプトが有効になっていることを確認します。
  2. http://www.intel.com/software/products/support に移動します。
  3. ログイン名とパスワードを入力します。どちらも大文字と小文字が区別されます。半角英数字と一部の記号のみ使用できます。
  4. [Submit Issues] ボタンをクリックします。
  5. 「Confidentiality Statement (機密保護について)」を読み、(内容に同意されたら) [I Accept] ボタンをクリックします。
  6. [Product] ドロップダウン・リストの隣にある [Go] ボタンをクリックします。
  7. 左側のナビゲーション・バーの [Submit Issue] リンクをクリックします。
  8. [Product Type] ドロップダウン・リストから [Development Environment (tools,SDV,EAP)] を選択します。
  9. ソフトウェアまたはライセンスに関連する問題の場合は、[Product Name] ドロップダウン・リストから [Intel® MKL for Linux*] を選択します。
  10. 質問を入力し、ウィンドウの残りのフィールドも記入します。

問題の報告や製品に対するご意見を送信する際は、次のガイドラインに従ってください。

  1. 問題、その他ご意見を入力してください。
    問題を報告する場合は、その問題を再現できるように、できるだけ具体的に (コンパイラーやリンク・コマンドライン・オプションなども含めて) 説明してください。可能な場合は、テストファイル (小さなもの) を含めるようにしてください。
  2. システム構成情報を入力します。
    オペレーティング・システム、インストールされているアプリケーションの名前とバージョンなど、問題の特定に役立つと思われるすべての情報が含まれていることを確認してください。

関連製品とサービス

インテル・ソフトウェア開発製品の詳しい情報については、http://www.intel.co.jp/jp/developer/software/products/ を参照してください。関連製品には次のものが含まれます。

権利の帰属

エンド・ユーザー・ソフトウェア使用許諾契約書 (End User License Agreement) で言及されているように、製品のドキュメントおよび Web サイトの両方で完全なインテル製品名の表示 (例えば、"インテル® マス・カーネル・ライブラリー") とインテル MKL ホームページ (www.intel.com/software/products/mkl) へのリンク/URL の提供を正確に行うことが最低限必要です。

著作権と商標について

本資料で提供される情報は、予告なく変更されることがあります。インテルは本資料の内容およびこれに関連して提供されるソフトウェアにエラー、誤り、不正確な点が含まれていたとしても一切責任を負わないものとします。本資料およびこれに記載されているソフトウェアはライセンス契約に基づいて提供されるものであり、その使用および複製はライセンス契約で定められた条件下でのみ許可されます。本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスを許諾するためのものではありません。本資料に掲載されている情報は、インテル製品の概要説明を目的としたものであり、インテルによる確約と解釈されるべきものではありません。

製品に付属の売買契約書『Intel's Terms and Conditions of Sale』に規定されている場合を除き、インテルはいかなる責を負うものではなく、またインテル製品の販売や使用に関する明示または黙示の保証 (特定目的への適合性、商品性に関する保証、第三者の特許権、著作権、その他、知的所有権を侵害していないことへの保証を含む) にも一切応じないものとします。インテル製品は、医療、救命、延命措置、重要な制御または安全システム、核施設などの目的に使用することを前提としたものではありません。

機能または命令の一覧で「留保」または「未定義」と記されているものがありますが、その「機能が存在しない」あるいは「性質が留保付である」という状態を設計の前提にしないでください。これらの項目は、インテルが将来のために留保しているものです。インテルが将来これらの項目を定義したことにより、衝突が生じたり互換性が失われたりしても、インテルは一切責任を負いません。

本資料で説明されているソフトウェアには、不具合が含まれている可能性があり、公開されている仕様とは異なる動作をする場合があります。現在までに判明している不具合の情報については、インテルのサポートサイトをご覧ください。

Intel、インテル、Intel ロゴ、Intel Core、Itanium、MMX、Pentium、VTune、Xeon は、米国およびその他の国における Intel Corporation またはその子会社の商標または登録商標です。

* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

(C) 2000 - 2006 Intel Corporation.