問題タブ [intel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Intel C++ コンパイラーが AMD 用に最適ではないコードを出力することについて、どの程度心配する必要がありますか?
私たちは常にインテルのショップです。すべての開発者は Intel マシンを使用しており、エンド ユーザーに推奨されるプラットフォームは Intel です。エンド ユーザーが AMD で実行したい場合は、それが彼らの目を光らせています。おそらく、テスト部門は AMD マシンをどこかに置いて、完全に壊れたものを出荷していないことを確認していたのでしょうが、それだけでした。
数年前まで、私たちは MSVC コンパイラを使用していましたが、SSE レベルを超える多くのプロセッサ チューニング オプションを実際には提供していないため、コードが特定の x86 ベンダーを別のベンダーよりも優先するかどうかについてあまり心配していませんでした。ただし、最近は Intel コンパイラを頻繁に使用しています。私たちのものは、(インテルのハードウェア上で) それから確実にいくつかの重要なパフォーマンス上の利点を得ており、そのベクトル化機能により、asm/intrinsics に行く必要が少なくなります。しかし、人々は、Intel コンパイラが AMD ハードウェアに対して実際にそれほど良い仕事をしていないのではないかと心配し始めています。確かに、Intel CRT または IPP ライブラリに足を踏み入れると、明らかに最適化された関数へのジャンプ テーブルを設定するための多くの cpuid クエリが表示されます。ただし、Intel が AMD のチップに何か良いことをしようと苦労する可能性は低いと思われます。
この分野の経験のある人なら、それが実際に大したことかどうかについてコメントできますか? (AMD で実際にパフォーマンス テストを行ったことはまだありません)。
Update 2010-01-04 : まあ、AMD をサポートする必要性は、私が自分でテストするほど具体的ではありませんでした。この問題に関する興味深い読み物がいくつかありますhere、here、およびhere .
更新 2010-08-09 : Intel-FTC 和解は、この問題について何か言いたいことがあるようです -この記事の「コンパイラとダーティ トリック」セクションを参照してください。
c++ - デフォルトのテンプレートクラス引数はg++を混乱させますか?
昨日、Intel(9.0)コンパイラを使用して問題なくコンパイルしているコードでg ++(3.4.6)コンパイラの問題が発生しました。何が起こったかを示すコードスニペットは次のとおりです。
g++コンパイラエラーは次のとおりです。
明らかに、このように記述された場合、デフォルトの引数は受け入れられません。コンパイラは、2番目のテンプレート引数の代わりに新しい関数引数が指定されていると想定しますstuff
。引数にはデフォルト値があるため、デフォルト値が必要です。typedefを作成することでコンパイラを支援できます。そうすれば、すべてが正常にコンパイルされます。
だから私は自分の問題を解決することはできますが、何が起こっているのかわかりません。ここでC++(テンプレート?)言語機能を見逃していて、何か間違ったことをしているのでしょうか、それとも最初のコードを受け入れないという点でg ++コンパイラが間違っているのでしょうか?
ところで、これもコンパイルされることに注意してください...
c++ - Intel ベースのシステムで C++ が使用する浮動小数点数のバイナリ形式は何ですか?
Intel ベースのシステムで C++ が使用する single または double 型のバイナリ形式について知りたいと思っています。
データが別のシステム (ファイルやネットワークなど) によって読み書きされる可能性がある場合に備えて、浮動小数点数の使用を避けてきました。代わりに固定小数点数を使用できること、およびその固定小数点の方が正確であることは認識していますが、浮動小数点形式について知りたいと思っています。
x11 - Xorg を OpenSolaris 上の Intel Q35 でうまく動作させるにはどうすればよいですか?
OpenSolaris は Intel 82Q35 チップセットをサポートしていないようです。これは遅い Xorg に変換され、そのパフォーマンスは時間の経過とともに低下し、フルスクリーンの gnome コンソール端末で ls を実行してもまったく使用できなくなります。
大量のメモリ (>400Mb) が Xorg プロセスと gnome (>100Mb の gnome アプリ) によって使用されていることに気付きました。vesa に切り替えると、すべてがより合理的な Xorg (90Mb) になります。ただし、GUI を多用するアプリでは、UI が遅くなることがあります。
応答性を高めるための代替手段はありますか?
delphi - Delphi 用の x86 コード ジェネレーター フレームワーク
Delphi で x86 コードの生成を簡素化するためのフレームワークまたはライブラリを見つけた人はいますか? 私が探しているのはアセンブラではなく、低レベルのビットとバイトを超えるコード生成プロセスを抽象化するフレームワークです。ケースバイケースでロジックをハードコードするのではなく、既存のライブラリやフレームワークの上に構築するのが理想的です。
最初の使用法は、Delphi が SOAP リクエストをディスパッチする方法と同様に、実行時に小さなコード スタブを生成することです。何かが見つからない場合は、おそらく自分で転がしますが、車輪を再発明するのは嫌いです. ライセンスが商用およびオープンソースプロジェクトでの翻訳と使用を許可する場合、「C」の何かが興味深いかもしれません。
アップデート:
ここにもう少しコンテキストがあります。私が目指しているのは、永続化フレームワークの一部としてのインターフェイスやクラスのランタイム実装です。明確な Delphi フレーバーを除いて、Java アノテーション駆動型永続性 (JPA/EJB3) のようなもの。呼び出しターゲットは、一般化された持続性モデルを実装するモジュラー/拡張可能なフレームワークです。非常に動的で流動的な方法で、RTTI と注釈/属性モデル (InstantObjects メタデータに似たもの) に基づいてメソッド呼び出しをディスパッチしてフックする必要があります。
ありがとう、デビッド
performance - マルチコア Intel CPU でキャッシュ メモリはどのように共有されますか?
マルチコア CPU またはマルチプロセッサ システムで使用されるキャッシュ メモリに関していくつか質問があります。(プログラミングとは直接関係ありませんが、マルチコアプロセッサ/マルチプロセッサシステム用のソフトウェアを作成する際に多くの影響があるため、ここで質問します!)
マルチプロセッサ システムまたはマルチコア プロセッサ (Intel Quad Core、Core two Duo など) では、各 CPU コア/プロセッサに独自のキャッシュ メモリ (データおよびプログラム キャッシュ) がありますか?
1 つのプロセッサ/コアが互いのキャッシュ メモリにアクセスできますか? 互いのキャッシュへのアクセスが許可されている場合、その特定のプロセッサのキャッシュにデータがなく、他の 2 番目のデータが含まれているシナリオでは、キャッシュ ミスが少なくなる可能性があるためです。プロセッサのキャッシュにある可能性があるため、メモリから最初のプロセッサのキャッシュへの読み取りを回避できますか? この仮定は有効で真実ですか?
任意のプロセッサが他のプロセッサのキャッシュ メモリにアクセスできるようにすることに問題はありますか?
core - プロセッサ:IntelXeonに関するキャッシュ情報を取得する方法
XeonE5420に関する正確なアーキテクチャ情報を入手する方法を探しています。このプロセッサには4コアと2x6Moキャッシュがあるため、2コアが6Moキャッシュを共有します。
私は2つのプロセッサxeonを搭載し、したがって8つのコアを搭載したマシンで作業しています。/proc/cpuinfoを見ると、どのコアがどのプロセッサ上にあるかがわかります。
通常、奇数のコアはプロセッサ上にあり、偶数のコアは他のプロセッサ上にありますが、同じプロセッサ上のどの2つのコアが6Moキャッシュを共有しているかを知る方法が見つかりませんでした。
どんな手掛かり?
c++ - 決定論的プロセスが浮動小数点エラーを生成する原因となるもの
すでにこの質問を読んだので、同じ入力 (同じハードウェア上で、同じコンパイラでコンパイルされた) で浮動小数点演算を使用する特定のプロセスが決定論的であるべきであると合理的に確信しています。これが正しくないケースを調べており、何が原因なのかを突き止めようとしています。
実行可能ファイルをコンパイルし、まったく同じデータを単一のマシン (非マルチスレッド) で実行していますが、約 3.814697265625e-06 のエラーが発生しています。 /4^9 = 1/2^18 = 1/262144. これは、32 ビット浮動小数点数の精度レベルにかなり近い (ウィキペディアによると約 7 桁)
私の疑いは、コードに適用された最適化と関係があるということです。Intel C++ コンパイラを使用しており、浮動小数点のスペキュレーションをセーフまたはストリクトではなく高速に変更しました。これにより、浮動小数点プロセスが非決定論的になる可能性がありますか? この動作につながる可能性のある他の最適化などはありますか?
編集: Pax の提案に従って、浮動小数点の推測を安全に変更してコードを再コンパイルしたところ、安定した結果が得られました。これにより、この質問を明確にすることができます-浮動小数点投機は実際に何をしますか?これにより、まったく同じ入力に適用されたときに同じバイナリ (つまり、1 つのコンパイル、複数の実行) が異なる結果を生成するのはなぜですか?
@Ben Intel(R) C++ 11.0.061 [IA-32] を使用してコンパイルしており、Intel クアッドコア プロセッサで実行しています。
compilation - gfortran から ifort への移植中のコンパイル エラー
プログラムを gfortran から ifort (Intel Fortran Compiler 11) に移植しようとしています。gfortran でしかコンパイルできない 2 つのファイルが残っています。
これらのファイルを使用して intel fortran コンパイラを実行しようとすると、次のようになります。
オブジェクトファイルは作成されません。
さて、この問題 o_O をどのように解決できますか?
編集:ファイル拡張子の名前を ff から fpp に変更する
役立ちます:
http://www.rcac.purdue.edu/userinfo/resources/black/userguide.cfm#compile_fortran_cpp
更新:ファイルの名前を変更せずに intel fortran コンパイラを動作させる方法はありますか?