問題タブ [fat-binaries]

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.

0 投票する
1 に答える
34648 参照

cuda - CUDA: -arch と -code および SM と COMPUTE の使用方法

nvcc でビルドするときに、コード生成用のアーキテクチャを適切に指定する方法がまだわかりません。マシン コードと PTX コードがバイナリに埋め込まれており、これはコントローラー スイッチ-code-arch(または を使用して両方の組み合わせ-gencode) を介して制御できることを認識しています。

これによれば、2 つのコンパイラ フラグsm_XXとは別に、アーキテクチャを指定する 2 つの方法もありcompute_XXます。フラグは仮想アーキテクチャ ( など) の識別子のみを取得しますが、フラグは実際のアーキテクチャと仮想アーキテクチャの両方の識別子を取得します。compute_XXsm_XX-archcompute_XX-code

ドキュメントには-arch、入力ファイルがコンパイルされる仮想アーキテクチャを指定することが記載されています。ただし、この PTX コードはマシン コードに自動的にコンパイルされるのではなく、むしろ「前処理ステップ」です。

では-code、PTX コードがアセンブルおよび最適化されるアーキテクチャを指定することになっています。

ただし、どの PTX またはバイナリ コードがバイナリに埋め込まれているかは明確ではありません。たとえば を指定した場合-arch=compute_30 -code=sm_52、コードは最初に機能レベル 3.0 PTX にコンパイルされ、その後、機能レベル 5.2 のマシン コードが作成されるということですか? そして、何が埋め込まれますか?

何が起こるかを指定した場合はどうなります-code=sm_52か?V5.2 PTX コードから作成された V5.2 用のマシン コードのみが組み込まれますか? との違いは-code=compute_52何ですか?

0 投票する
1 に答える
547 参照

c++ - CUDA コードとのリンク エラー: `__cudaRegisterLinkedBinary_ の複数の定義

.a ライブラリにコンパイルしている CUDA コードと、それを使用するアプリ用の (CUDA 関連の) 通常の C++ コードがあります。すべてが中間リンクを受けています。

現在、あるマシン (CUDA 8.0 RC を使用) ではビルドは成功しますが、別のマシン (重要な場合に備えて Kepler カードではなく Maxwell を使用) では次のようになります。

私は実際に、ライブラリコードを呼び出すバイナリにコンパイルされたものからファイルを削除し始めました.それらをすべて削除した場合にのみ、リンクは成功します.

私の質問:

  • このような一貫性のない動作が発生する可能性があるのは、どのような状況ですか?
  • これは、ライブラリとバイナリの両方の「2 回目のリンク」の結果である可能性がありますか?
  • 実際に競合しているものを正確に判断するにはどうすればよいですか (たとえば、 でどのシンボルを探すべきか)。
  • 実際に競合するものがない場合、これを回避するにはどうすればよいですか?

ノート:

  • 1 台のマシンでは CUDA 7.5 を使用しており、もう 1 台のマシンでは CUDA 8.0 RC を使用しています。
0 投票する
2 に答える
686 参照

windows - 64 ビットと 32 ビットの実行可能ファイルを 1 つにバインドする方法は?

私のアイデアは、64ビットと32ビットの両方のWindows実行可能ファイルを1つのアプリケーションにバインドする方法でした。64ビットバージョンを実行しない場合は、32ビットバージョンを試します.

私は PE について読んでいて、MS-DOS Real Mode Stub について少し学びました。それはアプリケーションをどのように呼び出すか (通常はエラー メッセージ) を示しています。しかし、MS-DOS Real Mode Stub について調べようとするたびに、エラー メッセージしか表示されないようでした。そこで私の考えは、STUB を 32 ビット アプリケーションで上書きすることでした。

32 ビットのオペレーティング システムが 64 ビットの実行可能ファイルを実行すると、実行に失敗してスタブ ファイルが実行されると、素朴な私自身が考えました。

実行可能ファイルを 32 ビット/64 ビットに依存しないようにする方法はありますか?

0 投票する
0 に答える
83 参照

objective-c - ネイティブ Obj-C ライブラリを Xamarin.iOS プロジェクトにバインドする際の問題

XCode で作成したネイティブの Obj-C 静的ライブラリを Xamarin.iOS プロジェクトにバインドしようとすると、問題が発生します。Fat Binary を作成するために必要な手順を実行しました。x86 と ARM の両方のアーキテクチャを作成しましたが、ラッパー クラス内にネイティブの Obj-C クラスが見つからないというエラーがスローされます。次のコマンド「nm -arch」を使用して腕のシンボル テーブルを確認すると、シンボル テーブルが空でした。

私が試した例へのリンク: https://docs.microsoft.com/en-us/xamarin/ios/platform/binding-objective-c/walkthrough?tabs=windows#Creating_A_Static_Library

0 投票する
2 に答える
18675 参照

makefile - MacでMakefileを実行する方法

Macでファットライブラリを作成したい。だから私はこれに従います。makefile の内容を編集テキストにコピーし、名前を に変更しましたMakefile.mak。メイクファイルがある場所でターミナルを開き、ターミナルに「make」と入力してEnterキーを押します。「Makefile が見つかりません」というエラーが表示されます。この理由は何でしょうか?どこで間違えた?私を助けてください。ありがとう