hisso.li
  • Login
Show Navigation
  • Public

    • Groups

Conversation

Notices

  1. uwabami✅ (uwabami@junkhub.org)'s status on Thursday, 24-Jan-2019 00:49:52 JST uwabami✅ uwabami✅

    へー...これは知らなかった. ifort -align array64byte だけでは module 内の静的配列は 64byte align されない: http://bit.ly/2RKhPa7

    In conversation Thursday, 24-Jan-2019 00:49:52 JST from junkhub.org permalink

    Attachments

    1. ベクトル化の可能性を高めるデータ・アライメント
      By iSUS 編集部 from iSUS
      この記事は、インテル® デベロッパー・ゾーンに掲載されている「Data Alignment to Assist Vectorization」の日本語参考訳です。 はじめに データ・アライメントとは、特定のバイト境界上のメモリーにデータ・オブジェクトを生成するようにコンパイラーに指示する手法です。これは、データのロード/ストアの効率を高めるために行います。簡単に説明すると、プロセッサーの設計特性により、データが特定のバイト境界上のメモリーアドレスにある場合、そのデータを効率良く移動することができます。インテル® Xeon Phi™ コプロセッサーのようなインテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーでは、データが 64 バイト境界で始まるアドレスにあると、メモリーの移動を最適に行えます。そのため、モジュロ 64 バイトで始まるアドレス境界にデータ・オブジェクトを生成するようにコンパイラーに指示すると良いでしょう。さらに、データが 64 バイトでアライメントされていることが判明している場合、コンパイラーはさまざまな最適化を適用できます。デフォルトでは、データが現在のスコープ外で作成されると、コンパイラーはアライメント情報を得ることも、仮定することもできません。そのため、コンパイラーが最適なコードを生成できるように、プラグマ (C/C++)/指示句 (Fortran) によってコンパイラーにアライメント情報を知らせる必要があります。ただし、例外として Fortran のモジュールデータは USE 文でアライメント情報を受け取ります。 データをアライメントするには、次の 2 つのステップに従います。 データをアライメントします。 クリティカル領域内のデータが使用されている位置で、プラグマ/指示句を記述してデータがアライメントされていることをコンパイラーに知らせます。 1. データをアライメントする パフォーマンスを向上するには、データをアライメントすることが重要です。また、最適化が行われるように、クリティカル領域でアライメント情報をコンパイラーに知らせることも重要です。データをアライメントしてもコンパイラーに知らせなければ、最適化が十分に行われなかったり、コンパイル時間が長くなる恐れがあります。
    • Help
    • About
    • FAQ
    • Privacy
    • Source
    • Version
    • Contact

    hisso.li is a social network. It runs on GNU social, version 2.0.0-alpha0, available under the GNU Affero General Public License.

    Creative Commons Attribution 3.0 All hisso.li content and data are available under the Creative Commons Attribution 3.0 license.

    Switch to desktop site layout.