10月28日インテルソフトウェア カンファレンスにご参加の皆様へ | Core チャンネル | フォーラム

iSUS に投稿されている記事の内容や、IA プラットフォーム上でのソフトウェア開発に関するトピックを開発者同士でディスカッションできる場としてフォーラムを公開しています。

運営ルールはフォーラムの利用案内をご覧ください。
フォーラムの使い方はこちら

 
フォーラムに投稿するにはログインが必要ですログイン

10月28日インテルソフトウェア カンファレンスにご参加の皆様へ

メンバー投稿

8:51 PM
2011年10月28日


iSUS編集部 – 菅原

投稿数 206

1

皆様、インテル ソフトウェア カンファレンスにご参加いただきありがとうございます。

セッションに関する質問、ご意見をこのフォーラムで受け付けますので、ご遠慮なく申し付けください。

11:39 AM
2011年10月31日


ryusei

投稿数 2

2

カンファレンスに参加させていただきました。非常に勉強になりました。

Cilk plusの機能は、C/C++の言語拡張のようですが、
やはり、Fortranコンパイラでは使えないのでしょうか。
(昨夜、ifort(Ver 12.0)で要素関数の文を試してみましたが、
 コンパイルエラーとなりました。)

もし、Fortranで使えないなら、今後、Fortranに対応する予定はありますか?

7:14 PM
2011年10月31日


iSUS編集部 – 安

3

ryusei 様、

私が知る限りでは、Intel Cilk Plus は C/C++ インテルコンパイラーのみの機能で、インテル Fortran コンパイラーでは使用できません。
今後の予定はちょっと不明ですが、おそらくあまり期待できない予感があります。
Fortran ユーザは、OpenMP か、Co-Array Fortran による並列化になるものと思われます。

10:39 PM
2011年11月1日


iSUS編集部 – 菅原

投稿数 206

4

ryusei さん

Cilk Plus の Plus の部分にあたる、配列表記と要素関数は Fortran の持つ機能を C/C++ に実装した技術ですので、Fortran の FUNCTION や SUBROUTINE で ELEMENT プリフィックスを利用して要素関数を定義できます。

マニュアルの ELEMENTAL in function を参照してみていただけますか?

要素関数として実装されている超越関数があるので、そちらを利用してみる手があります。

12:03 PM
2011年11月2日


ryusei

投稿数 2

5

回答ありがとうございました。マニュアルを参照してみます。

9:19 PM
2011年11月29日


june

投稿数 2

6

カンファレンスとても参考になりました。
少し時間がたってしまいましたが、質問させていただきます。

①インテルコンパイラを使用することで、gccよりも最適化が図れることがわかりました。atomのようなシングルコアでもインテルコンパイラを使用すると最適化できるのでしょうか。
②また、Linuxでは、eclipsのプラグインとして使用できるようですが、Windows版eclipsでもプラグインとして使用できるようになるのでしょうか。

初歩的な質問で申し訳ありませんが、よろしくお願いいたします。

11:55 PM
2011年11月30日


iSUS編集部 – 菅原

投稿数 206

7

投稿は 12:01 AM – 2011年12月1日 に iSUS編集部 – 菅原 さんにより更新されました


june さま

問い合わせありがとうございます。

①についてですが、インテルコンパイラーは高い自動ベクトル化能力を備えています。SSE2をはじめとするSIMD命令を利用することで、1つの命令で複数のデータを処理することで、シングルスレッドレベルでのスループットが向上します。
SSEからSSE4.2までの命令では、128ビット幅のレジスターに、32ビットデータであれば、4つの要素を格納し1命令で演算できます。GCCなどでは、ループ内の演算が複雑になると、コンパイラーはベクトル化を行うコードを生成できず、SIMD命令を利用したスカラー演算を行うようなコードを生成します。コンパイラーのベクトル化については、iSUSに掲載されている「コンパイラー最適化入門」、http://www.isus.jp/article/compileroptimization/compiler_part1/
を参照ください。ATOMプロセッサーは、SSSE3までのSIMD命令を実行できるので、-xSSSE3_ATOMオプション(Windowsでは、/QxSSSE3_ATOM)を利用すると、ATOMプロセッサー向けの命令スケジュールを行ったSSSE3命令群によるコードが生成できます。

②残念ながらWindows環境での Eclipseへの統合(コンパイラーインストール時の自動的な統合)はサポートしておりません。Windowsでは、現在のバージョン12.1のインテルコンパイラーは、Visual Studio 2005/2008/2010への統合のみをサポートします。Windows環境にインストールされているEcpilseに手動でPATH等を設定していただければ、コンパイラーは起動できると思います。但し、インテルコンパイラーをWindows環境でインストールする場合、事前にVisual Studio(VS) かWindows SDK が事前にインストールされている必要があります。これらが無いとインストールでエラーとなります。

以上、ご検討ください。

5:41 PM
2011年12月12日


june

投稿数 2

8

ご丁寧な回答ありがとうございます。
コンパイラ最適化入門なども参考にさせていただきます。