nvvp在命令行中

时间:2013-10-29 15:53:13

标签: java cuda profiler

我尝试运行nvvp来在命令行中分析cuda代码

nvvp ./my_app

但是,我得到以下错误

Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine. 

我理解问题是java无法分配足够的堆来运行应用程序。基于我在SO中读到的关于这个问题的内容(以及在互联网上的其他地方),我尝试按照

java -Xmx128m nvvp ./myapp

它没有解决我的问题,我得到以下消息

Exception in thread "main" java.lang.NoClassDefFoundError: nvvp
Caused by: java.lang.ClassNotFoundException: nvvp
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
Could not find the main class: nvvp. Program will exit.

2 个答案:

答案 0 :(得分:2)

以下是我的案例

setenv _JAVA_OPTIONS“-Xms512m -Xmx1024m”

然而,_JAVA_OPTIONS似乎可以在不同系统中拥有多个名称,因此在使用它之前找到正确的名称。它在拾取正确的变量

时显示以下内容
nvvp ./cb_dgemm_prof
Picked up _JAVA_OPTIONS: -Xms512m -Xmx1024m

如果未正确设置变量,您可能看不到上面的行。

答案 1 :(得分:0)

此消息表明JVM无法从操作系统为堆分配足够的内存,-Xmx / -Xms在这种情况下无效。

请回答我在评论中发布的问题,以便我们找到导致此问题的原因......