[Ver.UP] Composer XE 2013 update 2 | インテル ツール フォーラム | フォーラム

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

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

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

[Ver.UP] Composer XE 2013 update 2

メンバー投稿

9:16 PM
2013年2月4日


iSUS編集部 – 中村

投稿数 13

1

インテルコンパイラーの最新版がダウンロードサイトにポストされました。
今回は早くも Ver.13.1 とマイナーバージョンが上がっています。

新機能 (C++/Fortran 共通)
- OpenMP 4.0 RC1 (SIMD プラグマ)
- OpenMP TR (コプロセッサーへのオフロード) ※ Linux 版のみ
- OpenMP 環境変数 KMP_PLACE_THREADS (より簡便な thread affinity の設定)
- /Qvec-report7, -vec-report7 オプション (詳細は http://intel.ly/XeSkW6 )

また同梱されるインテル MKL 11.0 update 2 では、新しく固有値ソルバ (Eigensolver) のドメインが追加された他、Data Fitting (データ補間) のパフォーマンスが向上しているそうです。

詳細は Release Notes (英語) をご参照ください。
なお、日本語ドキュメントは入っていますが内容が追いついていません…。

3:46 PM
2015年11月6日


trjobs

投稿数 8

2

投稿は 6:51 PM – 2015年11月6日 に trjobs さんにより更新されました


編集長様
いつもインテルコンパイラのお世話になっております。
少々以前のトピックですが、最新のバージョンにも関係しておりますので、お伺いさせていただきます。4倍精度の計算をしておりますが、gccでは__float128という4倍精度変数宣言が使用でき、128ビット幅のbinary128の変数が使用できるのですが、Composer XE 2013のiccのupdate前のバージョンでは、このgccで使用されている__float128が使用できませんでした。それで調べていましたら、インテルのバグフィックスページ
https://software.intel.com/en-us/articles/intel-composer-xe-2013-compilers-fixes-list
にこの件があがっておりまして、修正されているように思われます。
現在私は、この2013バージョンにupdateを施しましたiccとXE 2015 Composerバージョンの両方を使える環境にありますが、それでも__float128が使用できません。gccでは、float128を使用するにはquadmath.hをインクルードしますが、インテルコンパイラのincludeディレクトリを探しましてもそれらしいヘッダもございませんし、類似の怪しそうなものもないようです。もちろん、このヘッダのインクルードをコメントアウトしましてもこの__float128という型が使用できるわけでもありません。使用するにはなにか特殊なことをしなければならないのでしょうか?調べますと、これとは別に_Quadという型?もあるようですが、確認はしておりません。上記HPの修正リストの記述みましても、__float128が使えないことがバグとして表記されてまして、それがフィックスされたということは、そのまま使えそうに受け取れるのですが、実際のところこのフィックスはどのように対処されているのでしょうか、お教え頂けますと嬉しゅうございます。_Quadで使えればそれでもよいのですが、__float128のまま使えますと、gccと同じコードが使えるのでより便利なものですから。
よろしくお願いします。

12:55 AM
2015年11月18日


iSUS編集部 – 菅原

投稿数 206

3

trjobs 様

すいません。コメント見落としておりました。

__float128 の件ですが、ご利用中のコンパイラーのバージョン(icc と gcc) はいくつになりましでしょうか? icc 起動時のサインオンもしくは、-v オプションで起動いただくと 16.0.xx のようなバージョン番号が出てまいります。

私の環境には,15.0.3 (update3)以降がインストールされておりますが、特に include ファイルや、コンパイルオプションを指定しなくても、__float128 は利用できております。gcc は、4.8.3 を使っています。quadmath.h は include しておりません。

ご利用中のライセンスで入手できる最新版を入手して確認いただけませんでしょうか?

1点注意があるとすれば、ソースを Windows 環境に持ってきた場合、Windows 版の icl はデフォルトでは、__float128 をサポートしていないため、/Qgcc-dialect:[GCCのバージョン] を指定する必要があります。

10:18 AM
2015年11月30日


trjobs

投稿数 8

4

菅原様
ご無沙汰しております。
ご回答頂いたのにこちらこそ遅くなってすみませんでした。
私もその間に自分でいろいろやったり、利用しております北大の計算機センターの方のアドバイスも頂いたりで検討しておりました。__float128を使うにはそのコンピュータのgccも利用するのですね。それがうまくいかない原因でした。iccはver.15.0以上で問題なかったのですが、gccが複数入っておりまして、パスの設定が不適切で古いgccがリンクされていたためだったようです。ライブラリバスは正しく設定していて-lquadmathをつけてコンパイルしていたので(コンパイルディレクトリに置いたりもしました)この問題を見落としていました。うまく使えました。あと、icc自身の_Quadも調べてみましたが、どうも出力するための関数が見当たらなくって、そのためにgccのlibquadmathを使うとあまり意味がないような気もしたもので、文字列変換を自作してちゃんと_Quadでも4倍精度が利用できることを確認しました。どうもありがとうございました。

タグはありません