无法启动Nvidia Nsight。

13

最初Java虚拟机甚至都无法启动,但我通过编辑nsight.ini文件并删除其中的内容解决了这个问题。

-XX:MaxPermSize=256m

并更新

-Dosgi.requiredJavaVersion

现在我能够看到闪屏界面并选择工作区目录。

我这么做了,出现了一个进度条,但它很快就崩溃了,并没有给出其他任何提示,只告诉我查看日志文件,日志文件的开头如下:

!SESSION 2016-12-09 20:30:40.686 -----------------------------------------------
eclipse.buildId=unknown
java.version=9-internal
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_GB
Command-line arguments:  -os linux -ws gtk -arch x86_64

!ENTRY com.nvidia.cuda.ide.build 4 0 2016-12-09 20:30:46.292
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: com.nvidia.cuda.ide.build [9]
  Unresolved requirement: Require-Bundle: org.eclipse.cdt.managedbuilder.core
    -> Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core; bundle-version="8.3.0.201409172108"; singleton:="true"
       org.eclipse.cdt.managedbuilder.core [108]
         Unresolved requirement: Require-Bundle: org.eclipse.cdt.core; bundle-version="[5.0.0,6.0.0)"
           -> Bundle-SymbolicName: org.eclipse.cdt.core; bundle-version="5.7.0.nvidia-qualifier"; singleton:="true"
              org.eclipse.cdt.core [88]
                Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))"

    at org.eclipse.osgi.container.Module.start(Module.java:434)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY com.nvidia.cuda.ide.cdt 4 0 2016-12-09 20:30:46.294
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: com.nvidia.cuda.ide.cdt [10]
  Unresolved requirement: Require-Bundle: org.eclipse.cdt.managedbuilder.core; bundle-version="8.0.0"
    -> Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core; bundle-version="8.3.0.201409172108"; singleton:="true"
       org.eclipse.cdt.managedbuilder.core [108]
         Unresolved requirement: Require-Bundle: org.eclipse.cdt.core; bundle-version="[5.0.0,6.0.0)"
           -> Bundle-SymbolicName: org.eclipse.cdt.core; bundle-version="5.7.0.nvidia-qualifier"; singleton:="true"
              org.eclipse.cdt.core [88]
                Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))"

    at org.eclipse.osgi.container.Module.start(Module.java:434)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY com.nvidia.cuda.ide.debug 4 0 2016-12-09 20:30:46.297
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: com.nvidia.cuda.ide.debug [11]
  Unresolved requirement: Require-Bundle: org.eclipse.cdt.core; bundle-version="5.3.0"
    -> Bundle-SymbolicName: org.eclipse.cdt.core; bundle-version="5.7.0.nvidia-qualifier"; singleton:="true"
       org.eclipse.cdt.core [88]
         Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))"

    at org.eclipse.osgi.container.Module.start(Module.java:434)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY com.nvidia.cuda.ide.editor 4 0 2016-12-09 20:30:46.309
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: com.nvidia.cuda.ide.editor [12]
  Unresolved requirement: Require-Bundle: org.eclipse.cdt.ui; bundle-version="[5.8.0.nvidia,5.8.1)"
    -> Bundle-SymbolicName: org.eclipse.cdt.ui; bundle-version="5.8.0.nvidia-qualifier"; singleton:="true"
       org.eclipse.cdt.ui [111]
         Unresolved requirement: Require-Bundle: org.eclipse.cdt.core; bundle-version="[5.2.0,6.0.0)"
           -> Bundle-SymbolicName: org.eclipse.cdt.core; bundle-version="5.7.0.nvidia-qualifier"; singleton:="true"
              org.eclipse.cdt.core [88]
                Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))"

    at org.eclipse.osgi.container.Module.start(Module.java:434)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY com.nvidia.cuda.ide.remote 4 0 2016-12-09 20:30:46.311
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: com.nvidia.cuda.ide.remote [13]
  Unresolved requirement: Import-Package: org.eclipse.remote.core
    -> Export-Package: org.eclipse.remote.core; bundle-symbolic-name="org.eclipse.remote.core"; bundle-version="1.0.0.201409111520"; version="0.0.0"
       org.eclipse.remote.core [263]
         Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))"

    at org.eclipse.osgi.container.Module.start(Module.java:434)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

我使用 NVIDIA 官网提供的 .deb 软件仓库安装了 CUDA 和 Nsight。

我使用以下命令添加了该仓库:

dpkg -i <cuda_file>.deb

并使用以下方式进行安装:

sudo apt update
sudo apt install cuda

普通的eclipse安装能够完美运行,所以如果有任何建议,将不胜感激!


在我看来,由于某种原因,您的计算机上似乎缺少一些必要的组件。根据您使用的标签,我猜测您正在使用Ubuntu 16.04?您尝试安装哪个CUDA版本? - Robert Crovella
你说得对,我已经安装了openjdk-8-jdk软件包,但nsight似乎需要oracle-java8软件包... - Ben Turner
3个回答

14

扩展对Ben Turner答案的评论,这是对我有效的方法(Ubuntu 18.04,cuda 10.1)。来自Nvidia论坛上线程,只需安装:

sudo apt install openjdk-8-jdk

就是这样了。

从终端运行:

nsight -vm /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

如果您想从GUI启动Nsight,请按以下方式修改/usr/share/applications/nsight.desktop

Exec=/usr/local/cuda-10.1/bin/nsight -vm /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

使用Ubuntu 19.10,CUDA 10.1和先前安装的JRE11进行工作。太棒了! - smcs
稍等,最终我确实需要移除Openjdk 11。 - smcs
+1 for GUI行。我更新了CUDA“东西”,它更新了SDK但损坏了驱动程序。重新安装了驱动程序(将所有东西都升级到CUDA 10.2),但丢失了上面的jvm引用。 - winwaed
在我的电脑上可以使用(Ubuntu18.04,未删除openjdk-11)。此外,我有一些小调整。1)您可以只使用“openjdk-8-jre”而不是“openjdk-8-jdk”。2)与其使用“-vm ...”修改命令行,您可以将其添加到“/usr/local/cuda-10.0/libnsight/nsight.ini”,该文件是重命名的“eclipse.ini”:https://wiki.eclipse.org/Eclipse.ini#Specifying_the_JVM。这样它就可以在终端和GUI中同时工作。 - lapis
这在我的Ubuntu 21.04上有效。请注意,我看到存在openjdk-17-jdk,并首先尝试了它,但很快就崩溃了,出现了java.lang.ExceptionInInitializerError。在Ubuntu 21.04中,OpenJDK版本8仍然作为软件包可用。 - user2023370

11

结果表明,openjdk-8-jdk软件包并不适用于与nsight一起使用。

您需要安装oracle-java8-installer软件包:

sudo apt install python-software-properties
sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-installer

完成后,Nsight 神奇地开始运行!


这在我的Ubuntu 18.04上有效。我认为Pingmin Fenlly Liu的答案也可以起作用。我假设通过上述命令设置了我的Java版本为oracle-java8,并且如果它再次更改,事情将停止工作。python-software-properties软件包不再受支持,apt建议使用software-properties-common替换它。 - TafT
它在Ubuntu 18.04上无法工作。没有oracle-java8-installer包了。 - cleuton
2
截至2019年6月,在Ubuntu 18.04上执行以下命令:sudo apt install openjdk-8-jdk - Vineet Bansal
5
从Nvidia的论坛上:安装完成后,您可以使用以下命令来运行您的Nsight: nsight -vm /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java — 对我来说有效。 在2019年9月,CUDA 10.1 Ubuntu 18.04. - aafulei
@aafulei 顺便说一下,我在2020年6月份在Ubuntu 20.04上安装了CUDA 10.2。默认仍然是10.1。10.2仍需要jvm8。你的答案可以这样使用:/usr/lib/cuda-10.2/bin/nsight -vm /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java - emsr

4
解决方案概述:
目前,对于Nsight Ecplipse Edition,请使用Java 7/8而不是Java 9/10/11。
细节:
我在Ubuntu 18.04上安装了CUDA 10.0,并自动安装了Nsight 10.0和java-11-openjdk(实际上它的Java版本是10.0.2),也遇到了这个错误。然后我发现当我使用Oracle JDK 7/8(将/usr/bin/java链接到我的Oracle JDK 7/8路径)时,Nsight工作正常,但JDK 11则不行。
并且通过查看您的错误日志中的Java 9,所以我们应该目前使用Java 7/8而不是9/10/11来使用Nsight,因为Nsight Eclipse及其插件还没有更新到Java 9/10/11。
注意事项:
您可能需要更改“/usr/share/applications/nsight.desktop”中的exec cmd(“Exec=/usr/local/cuda-10.0/bin/nsight”),以避免系统Java兼容性的其他问题。
我只需将cmd更改为“Exec=/ddisk/program/cuda/nsight.sh”,并在shell脚本中设置Java 7/8 home,然后运行“nsight”。因为如果我直接更改Ubuntu 18.04上的/usr/bin/java链接,会导致Thunderbird的安全消息扩展“Enigmail”(pep-json-server)使用高CPU和内存。
#!/bin/bash

# nsight.sh

# Java paths.
# NOTE: We should use java 7 or 8 for Nsight Eclipse Edition 10.0.
#export JAVA_HOME=/ddisk/program/java/latest
export JAVA_HOME=/ddisk/program/java/java7
#export JAVA_HOME=/ddisk/program/java/java8
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH

# Run the Nsight Eclipse.
#nsight
/usr/local/cuda/bin/nsight

最佳解决方案,因为您不需要更改当前的JVM安装。 - cleuton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接