1

IDE内でoptirun(bumblebee)を呼び出して、EclipseまたはNetBeansでオプティマスラップトップでグラフィックカードを使用する方法を知っている人はいますか?IDEの実行ボタンを使用して、IDE内のグラフィックカードでプログラムを実行できます。

最も単純な形式では、IDEに同等のことをさせたいだけですoptirun ./javaproject

4

4 に答える 4

1

私が Eclipse でこれを行った方法は、最初に Java デバッガーjdwpを起動し、ポートをリッスンすることでした。次に、JVM を起動し、optirun java ...jdwp を使用してこのポートに接続します。デバッグ構成設定 (実行 -> デバッグ構成)で起動グループを作成することにより、Eclipse で両方のタスクを同時に開始できます。詳細に:

  1. 「標準 (ソケット リッスン)」接続タイプと任意のポート (例: 56789 ) を使用してリモート Java アプリケーションデバッグ構成を作成します。
  2. 次に、 optirunで JVM を開始する必要があります。これは、外部ツール構成(実行 -> 外部ツール -> 外部ツール構成) で行うことができます。[外部ツールの構成] ウィンドウの左側で、新しいプログラム構成を作成します。optirun java <additional arguments>必要なフィールドに入力することから直接開始できます。ただし、さまざまなプロジェクトで再利用可能なシェル スクリプトを使用することにしました (以下に示すように、完全に再利用できるようにするために 1 つの部分が欠けています。経験豊富な Eclipse ユーザーからの助けをお待ちしております...) . したがって、Locationフィールドはこのシェル スクリプトを指します。スクリプト自体は 3 つの引数を受け入れます:クラスパスプロジェクト、Java 実行可能ファイルの名前、およびポート番号。これらの引数は、[メイン] タブの [引数]フィールドでスクリプトに渡すことができます。

    • ${project_classpath:${selected_resource_name}}
    • ExecName
    • 56789

    optirun が PATH にあると仮定すると、シェル スクリプトは次のようになります。

    #!/bin/sh
    CLASS_PATH=${1}
    JAVA_EXECUTABLE=${2}
    PORT=${3}
    # TODO: fix this java library path: pass it as an argument as well. Is there an Eclipse variable which stores this?
    JAVA_LIBRARY_PATH=/usr/local/share/OpenCV/java
    #------------------------------------------------------------------------------
    optirun ${JAVA_BIN} -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:${PORT} -Djava.library.path=${JAVA_LIBRARY_PATH} -Dfile.encoding=UTF-8 -classpath ${CLASS_PATH} ${JAVA_EXECUTABLE}
    #------------------------------------------------------------------------------
    
  3. 最後に、2 つの部分が [デバッグ構成] ウィンドウ ([実行] -> [デバッグ構成])の起動グループにまとめられます。新しい起動グループを作成し、[起動] タブで [追加] をクリックして適切な構成を選択することにより、以前に生成された 2 つのデバッグ構成を追加します。手順 2 のクラスパス変数 (つまり) により、デバッグ構成の実行ボタンをクリックする前に、パッケージ エクスプローラーで適切なパッケージを選択する必要があることに注意してください (起動グループが選択されていることを確認してください)。${project_classpath:${selected_resource_name}}

このソリューションは私にとって完璧に機能します。CUDA 最適化を含むネイティブ コードを呼び出す Java コードを Eclipse 内でデバッグでき、Bumblebee は必要な場合にのみディスクリート グラフィックス カードをアクティブにします。

于 2013-03-20T02:27:52.367 に答える
1

optirun を使用して IDE を起動するだけです。たとえば、optirun eclipseまたはoptirun netbeans

于 2012-07-16T17:59:39.997 に答える
0

Netbeans ( ) でプロジェクトをビルドF11し、ターミナルで以下を実行します。

optirun java -jar path/to/javaproject/dist/javaproject.jar

プロジェクトに Java パラメータがある場合は、手動で追加する必要があることに注意してください。私のワークフローは次のようになります。

プロジェクトから Java オプションを見つけ、Project -> PropertiesRunを開きます。VM Optionsに が表示されます-Djava.library.path=lwjgl/native/windows;:lwjgl/native/linux。に渡したいパラメータもいくつかありますmain(String[])。この情報を使用して、ターミナルを開いて実行します。

cd path/to/javaproject
optirun java -Djava.library.path=lwjgl/native/windows;:lwjgl/native/linux \
    -jar dist/javaproject.jar some paremeters

別のヒントとして、プログラムを頻繁に開いたり閉じたりする必要がある場合はoptirun bash、別のタブで実行すると、グラフィック カードの使用準備が速くなります。または、 を実行することもできますがoptirun netbeans、これは、プログラミングを行っている場合でも、nvidia カードが常にオンになることを意味し、電力使用量が増加し、熱が増加します。

重要: 64 ビット マシンで 32 ビット JVM または Java ライブラリを使用している場合は、32 ビット ドライバとライブラリもインストールする必要があります。Ubuntu の場合、nvidia パッケージには既に 32 ビット ドライバーが含まれています。この回答を参照してください。lib32-*他のディストリビューションの場合、Mesa、VirtualGL、および nvidia-utils のパッケージをインストールする必要があります。

于 2012-12-19T10:04:01.510 に答える