問題タブ [infiniband]
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.
linux - Infiniband RX/Tx 情報を取得する方法
インフィニバンド RX/TX 情報を収集して表示するツールはありますか?
cuda - GPUからリモートホストへのGPUDirectRDMA転送
シナリオ:
Infinibandに接続されたクライアントとサーバーの2台のマシンがあります。サーバーマシンにはNVIDIAFermiGPUがありますが、クライアントマシンにはGPUがありません。いくつかの計算にGPUを使用するGPUマシンで実行されているアプリケーションがあります。GPU上の結果データは、サーバーマシンによって使用されることはなく、代わりに処理なしでクライアントマシンに直接送信されます。現在cudaMemcpy
、GPUからサーバーのシステムメモリにデータを取得し、ソケットを介してクライアントに送信しています。この通信でRDMAを有効にするためにSDPを使用しています。
質問:
cudaMemcpy
この状況で、NVIDIAのGPUDirectテクノロジーを利用して通話を取り除くことは可能ですか?GPUDirectドライバーが正しくインストールされていると思いますが、最初にホストにコピーせずにデータ転送を開始する方法がわかりません。
SDPをGPUDirectと組み合わせて使用することはできないと思いますが、サーバーマシンのGPUからクライアントマシンへのRDMAデータ転送を開始する他の方法はありますか?
ボーナス: GPUDirectの依存関係が正しくインストールされているかどうかをテストする簡単な方法が誰かにある場合は、それも役立ちます!
linux - infinibandrdma貧弱な転送bw
私のアプリケーションでは、インフィニバンドインフラストラクチャを使用して、サーバーから別のサーバーにデータのストリームを送信します。私はソケットプログラミングに精通しているので、infinibandを介して開発IPを簡単に使用していました。これまで、パフォーマンス(max bw)は私にとって十分でした(達成可能な最大帯域幅が得られていないことはわかっていました)が、今はその無限帯域幅接続からより多くの帯域幅を取得する必要があります。
ib_write_bwは、達成可能な最大帯域幅が約1500 MB / sであると主張しています(カードがPCI 2.0 8xにインストールされているため、3000MB / sを取得していません)。
ここまでは順調ですね。ibverbsとrdmaを使用して通信チャネルをコーディングしましたが、取得できる帯域幅よりもはるかに少なくなっています。ソケットを使用するよりも帯域幅が少し少なくなっていますが、少なくともアプリケーションはCPUパワーを使用していません。
ib_write_bw:1500 MB / s
ソケット:700 MB / s <=このテスト中、システムの1つのコアは100%です。
ibvers + rdma:600 MB /s<=このテストではCPUはまったく使用されません
ボトルネックはここにあるようです:
この時点で、完了を待機している次のコードは次のとおりです。
私のibv_post_sendからibv_get_cq_eventがイベントを返すまでの時間は、8MBのチャンクを転送して約600MB/sを達成したときに13.3msです。
さらに指定するには(疑似コードでグローバルに行うこと):
アクティブサイド:
パッシブサイド:
誰かが私が間違っていることを知っていますか?または私が改善できることは何ですか?私は「ここで発明されていない」症候群の影響を受けていないので、今までやってきたことを捨てて、何か他のものを採用することさえできます。ポイントツーポイントの連続転送のみが必要です。
linux - ポートのステータスが常にダウンしており、UMAD ポートを開くことができない
次のマシンにofed-1.5-3を新しくインストールしました:
SUSE Linux Enterprise Server 11 (x86_64) バージョン = 11 パッチレベル = 1
管理者がマシンに CX354A カード (MCX354A-FCBT) カードをインストールしました。$ lspci | grep -i mel 04:00.0 ネットワーク コントローラ: Mellanox Technologies Device 1003
(質問 1: lspci のこの出力が正しいかどうかはわかりませんが、正しいと思われますが、正しい出力を取得する方法がわかりません。)
./mlnxofedinstall スクリプトを使用して ofed パッケージをインストールした後:
ofed_info の出力 | ヘッド -1 : MLNX_OFED_LINUX-1.5.3-3.1.0 (OFED-1.5.3-3.1.0):
インストールは成功し、openibd は必要なモジュール/ドライバーをすべてロードしました。$ サービス openibd ステータス
HCA ドライバーが読み込まれました
構成済み IPoIB デバイス: ib0 ib1
現在アクティブな IPoIB デバイス:
次の OFED モジュールがロードされます。
rdma_ucm ib_srp rdma_cm ib_addr ib_ipoib mlx4_core mlx4_ib mlx4_en ib_mthca ib_uverbs ib_umad ib_ucm ib_sa ib_cm ib_mad ib_core iw_cxgb3 iw_nes
hca_self_test.ofed の出力
---- アダプタ デバイスのセルフ テストを実行中 ---- 検出された CA の数 ................................ 1 PCI デバイス チェック .................. .... PASS カーネル アーチ ................................... x86_64 ホスト ドライバー バージョン .... ................ MLNX_OFED_LINUX-1.5.3-3.1.0 (OFED-1.5.3-3.1.0): 2.6.32.12-0.7-default ホスト ドライバー RPM チェック .. ................ CA #0 VPI の PASS ファームウェア ................................ CA #0 の v2.10.700 ファームウェア チェック(VPI) .... 該当なし 理由: 必要なファームウェア バージョンはありません ホスト ドライバの初期化 ........... PASS アクティブな CA ポートの数 .......... ...... 0 ポート CA #0 のポート #1 の状態 (VPI) ..... DOWN (InfiniBand) CA #0 のポート #2 の状態 (VPI) ..... DOWN (InfiniBand) ) CA #0 (VPI) のエラー カウンター チェック...... PASS カーネル Syslog チェック ................................. CA #0 (VPI) の PASS ノード GUID ) ... 00:02:c9:03:00:f9:ed:e0 ------------------ 完了 ----------------------
質問 2: ibstatus または ibv_devinfo を試すと、ポートのステータスが PORT_DOWN と表示されます。私がドキュメントを読んでいる間、それはINIT状態でなければならないということです。私の質問は、これを INIT 状態にする方法です。$ ibv_devinfo
hca_id: mlx4_0 トランスポート: InfiniBand (0) fw_ver: 2.10.700 node_guid: 0002:c903:00f9:ede0 sys_image_guid: 0002:c903:00f9:ede3 vendor_id: 0x02c9 vendor_part_id: 4099 hw_ver: 0x0 board_id: MT_0 port_1090: MT_0 port_1901状態: PORT_DOWN (1) max_mtu: 2048 (4) active_mtu: 2048 (4) sm_lid: 0 port_lid: 0 port_lmc:0x00 link_layer: IB
次のコマンドを試したところ、エラーが発生しました:
$ ibportstate -G 0x0002c90300f9ede0 1 クエリ/有効化/無効化 ibwarn: [9318] mad_rpc_open_port: UMAD ポートを開けません ((null):0) ibportstate: iberror: 失敗しました: '(null)' ポート '0' を開けませんでした
質問 3: なぜこのエラーが発生したのか、またはどうすれば解決できるのかわかりませんでした。どんな助けでも大歓迎です。
さらに情報が必要な場合はお知らせください。
ありがとう
tcpdump - RDMA でのパケット キャプチャ?
RDMA チャネルを経由するトラフィックをキャプチャするための Linux の tcpdump のようなユーティリティはありますか? (インフィニバンド/RoCE/iWARP)
linux - MPI_SEND は仮想メモリの大部分を占めます
多数のカーネルでプログラムをデバッグすると、非常に奇妙なエラーが発生しinsufficient virtual memory
ました。私の調査はコードの平和につながり、マスターは各スレーブに小さなメッセージを送信します。次に、1 つのマスターが 10 個の整数を単純に送信しMPI_SEND
、すべてのスレーブがそれを受信する小さなプログラムを作成しましたMPI_RECV
。/proc/self/status
前後のファイルを比較するとMPI_SEND
、メモリ サイズの違いが非常に大きいことがわかりました。最も興味深いこと (私のプログラムをクラッシュさせます) は、このメモリが後で解放されずMPI_Send
、依然として巨大なスペースを占有することです。
何か案は?
mpi - InfiniBandのインストールパスを見つける方法
MVAPICH2を自分でコンパイルしたいのですが、psm.h
ファイルの場所がわからないため、デフォルトの場所で見つかりません。
InfiniBandを見つけるためにどのコマンドを使用できるか知っている人はいますか?
c++ - Infinibandアドレッシング-IBoIPを使用しないIBアドレスへのホスト名
私はインフィニバンドに慣れ始めたばかりで、インフィニバンドノードに対処するために使用できる方法を理解したいと思っています。
コードに基づくのは、次の例です。IB動詞を使用したRDMAの読み取りと書き込み IPoIBを使用して、IPまたはホスト名で個々のノードをアドレス指定できます。
もう1つの方法は、ポートGUIDアドレスを直接使用することです。しかし、それらを調べる必要があるように見え、イーサネットMACアドレス指定に似ています。
次に、LIDアドレスと呼ばれるものがあります。これは、ファブリックマネージャーによって割り当てられた16ビットのローカルアドレスです。実行時にLIDアドレスを使用および決定するにはどうすればよいですか?たとえば、ibaddrを実行して、GID fe80 :: 1a:4bff:ff0c:34e5 LID start 0x6end0x6を取得します。
基本的に、IPoIBを使用していない場合、ホスト名をアドレスなどにどのように変換しますか?ホストファイルまたはそれに相当するものはありますか?
linux - Hello World iWarp アプリケーションの書き方
リモート DMA over iWarp を示す小さなプログラムを作成しようとしています。softwarp Linux カーネル モジュールをロードし、ユーザー空間ライブラリをコンパイルしました。
接続のセットアップを説明するドキュメントまたはサンプル コードを探しています。たとえば、単純なデータ ブロックをリモート エンドに送信して (「Hello World!」) 開始する方法について説明していますが、OpenFabrics のトレーニング Web しか見つかりません。全く役に立たないサイト。
c - ソケット ダイレクト プロトコル エラー: 「アドレス ファミリはプロトコルでサポートされていません」
インフィニバンド ハードウェアで SDP を試してみようと思いました。
ただし、最初の引数として AF_INET_SDP を追加しようとするとsocket()
、次のエラーが発生します。
もともと私は持っていました:
しかし、いくつかの読み取りを行った後、この値を 27 に変更するパッチが適用されたことに気付きました。
26 に設定すると、エラーが発生します。
Ubuntu 12.04でSDPを動作させることができた人はいますか? 起動して実行するために何をしましたか?
libsdp1 と libsdpa-dev をインストールしました
iperf で LD_PRELOAD メソッドを使用すると、最初のエラーも発生します。
したがって、27 が正しいドメイン番号だと思います。