概要
ディレクトリー構造
インテル® MKL 9.1 の新機能
動作環境
インストール・ノート
ドキュメント
既知の制限事項
テクニカルサポートとフィードバック
関連製品とサービス
著作権と商標について
インテル® マス・カーネル・ライブラリー (インテル® 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 のディレクトリー構造については、「ユーザーズガイド」(ファイル名: userguide.htm) を参照してください。
その他の機能の向上
|
注意: インテル® MKL 9.1 Mac OS 版には 2 つのパッケージがあります。
シリアルバージョンのライブラリーが必要な場合を除き、パッケージサイズを考慮して、標準パッケージの使用を推奨します。 |
ハードウェア
インテル® MKL をインストールして使用するには、サポートしているプロセッサーを搭載したシステムと 305MB のディスク空き容量 が必要です (インストール時、ファイルのダウンロードおよびテンポラリー・ファイル用に別途 110MB の空き容量も必要)。シリアル・ライブラリーを含むパッケージでは、520MB のディスク空き容量が必要です (インストール時、別途 170MB の空き容量も必要)。
サポートしているプロセッサー - インテル® MKL は、以下のプロセッサーをサポートしています。
ソフトウェア
インテル® MKL を使用するには、サポートしているコンパイラーが必要です。
推奨ソフトウェア - 以下のソフトウェアをインテル® MKL とともに使用することを推奨します。
以下のオペレーティング・システムをサポートしています。
以下の C/C++ コンパイラーおよび Fortran コンパイラーをサポートしています。
注意:
インテル® MKL のインストール時に、インストールに関するガイダンスが提供されます。ステップごとにインストール手順を説明したファイル (ファイル名: Install.txt) へのリンクが示されます。このファイルは doc ディレクトリー以下にあります。
ドキュメント・インデックス (doc ディレクトリーにある Doc_Index.htm) には、インテル® MKL の主要なドキュメントがリストされています。すべてのドキュメントの一覧は、ユーザーズガイドの 3-14 ページにある図 3-8 を参照してください。次の Web サイトから、HTML WebHelp バージョンのインテル® MKL リファレンス・マニュアル (英語) を利用できます。http://www.intel.com/software/products/mkl/docs/WebHelp/mklrefman.htm
インテル® MKL 9.1 におけるスパースソルバーおよび最適化ソルバーの制限事項
インテル® MKL 9.1 における FFT 関数の制限事項
インテル® MKL 9.1 における LAPACK 関数の制限事項
インテル® MKL 9.1 における区間演算関数の制限事項
インテル® MKL 9.1 における多倍長関数の制限事項
$CC prog.c -L$MKL_LIB_PATH -lmkl -lvml -lguide -lpthread -lm
FFT、VML、VSL、および PDE サポート関数は Fortran 77 コンパイラーでは使用できません。
インテル® コンパイラー 10.0 でインテル® MKL のサンプル・ソース・コードをコンパイルする場合は、-Od オプションを使用することを推奨します。現在のビルドスクリプトは、このオプションを指定しません。また、これらのコンパイラーでは、デフォルトでベクトル化を行うように変更されました。
VSL 関数はすべて、現在の演算のエラーステータスを返します。例えば、VSL の API のデフォルトは、以前のバージョンの MKL ではサブルーチン形式でしたが、現在では関数形式です。つまり、Fortran のユーザーは、VSL ルーチンを関数として呼び出す必要があります。
関数の呼び出し例:
errstatus = vslrnggaussian(method, stream, n, r, a, sigma)サブルーチンの呼び出し例:
call vslrnggaussian(method, stream, n, r, a, sigma)
インテル® 64 対応システムおける MKL スタティック・ライブラリーの制限事項
メモリー割り当て: より高いパフォーマンスを得るため、インテル® MKL によって割り当てられたメモリーは解放されません。これは仕様で、インテル® MKL ルーチンがメモリーバッファーを操作するのは 1 回 (割り当て) だけです。ツールによっては、これをメモリーリークとして報告することがあるため、注意してください。必要に応じて、メモリーを解放することができます。プログラムでインテル® MKL の MKL_FreeBuffers() 関数を使用するか、各呼び出しの後に MKL_DISABLE_FAST_MM 環境変数を設定します (詳細は、doc ディレクトリーにあるユーザーズガイドを参照してください)。しかし、これらの方法を使用してメモリーを解放しても、メモリーリークが報告されなくなるとは限りません。実際、ライブラリーを複数回呼び出す場合、各呼び出しごとに新しいメモリーの割り当てが必要になり、報告される数は増えることもあります。上記の方法で解放されなかったメモリーは、プログラムの終了時にシステムによって解放されます。各スレッドに割り当てられるバッファーの最大数は 32 です。この制限を回避するには、上記のようにメモリー管理を無効にします。
メモリー管理では、各スレッドに割り当てられるバッファーの数に制限があります。現在は、この数は 32 です。この制限を回避するには、上記のようにメモリー管理を無効にします。
チュートリアル、基本操作のヒント、製品に関する既知の問題点、製品のエラッタ、互換性に関する情報、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/) までお問い合わせください。
注意: 特定の国に対してアクセスを制限する必要があるソースコードが含まれている場合は、サポートが可能かどうかを判断するため、ソースコードを送る前にサポート担当者に確認してください。
インテル® プレミアサポートから問題を送信する場合は、次の手順に従ってください。
問題の報告や製品に対するご意見を送信する際は、次のガイドラインに従ってください。
インテル® ソフトウェア開発製品の詳しい情報については、http://www.intel.co.jp/jp/software/products/ を参照してください。関連製品には次のものが含まれます。
エンド・ユーザー・ソフトウェア使用許諾契約書 (End User License Agreement) で言及されているように、製品のドキュメントおよび Web サイトの両方で完全なインテル製品名の表示 (例えば、"インテル® マス・カーネル・ライブラリー") とインテル® MKL ホームページ (www.intel.com/software/products/mkl) (英語) へのリンク/URL の提供を正確に行うことが最低限必要です。
インテル® 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 らによって行われました。
本資料で提供される情報は、予告なく変更されることがあります。インテルは本資料の内容およびこれに関連して提供されるソフトウェアにエラー、誤り、不正確な点が含まれていたとしても一切責任を負わないものとします。本資料およびこれに記載されているソフトウェアはライセンス契約に基づいて提供されるものであり、その使用および複製はライセンス契約で定められた条件下でのみ許可されます。本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかかわらず、いかなる知的財産権のライセンスを許諾するためのものではありません。本資料に掲載されている情報は、インテル製品の概要説明を目的としたものであり、インテルによる確約と解釈されるべきものではありません。
製品に付属の売買契約書『Intel's Terms and Conditions of Sale』に規定されている場合を除き、インテルはいかなる責を負うものではなく、またインテル製品の販売や使用に関する明示または黙示の保証(特定目的への適合性、商品性に関する保証、第三者の特許権、著作権、その他、知的所有権を侵害していないことへの保証を含む)にも一切応じないものとします。インテル製品は、医療、救命、延命措置、重要な制御または安全システム、核施設などの目的に使用することを前提としたものではありません。
機能または命令の一覧で「留保」または「未定義」と記されているものがありますが、その「機能が存在しない」あるいは「性質が留保付である」という状態を設計の前提にしないでください。これらの項目は、インテルが将来のために留保しているものです。インテルが将来これらの項目を定義したことにより、衝突が生じたり互換性が失われたりしても、インテルは一切責任を負いません。
本資料で説明されているソフトウェアには、不具合が含まれている可能性があり、公開されている仕様とは異なる動作をする場合があります。現在までに判明している不具合の情報については、インテルのサポートサイトをご覧ください。
Intel、インテル、Intel ロゴ、Intel Core、Itanium、Pentium、VTune、Xeon は、アメリカ合衆国およびその他の国における Intel Corporation の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
© 2007 Intel Corporation.