- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试从主机ubuntu计算机上的远程Ubuntu计算机上运行CUDA粒子示例。
我遵循了本教程:
http://devblogs.nvidia.com/parallelforall/remote-application-development-nvidia-nsight-eclipse-edition/,它在我的主机上运行,但不在我的远程计算机上运行。
我在Nsight中得到以下输出:
CUDA Particles Simulation Starting...
grid: 64 x 64 x 64 = 262144 cells
particles: 16384
No protocol specified
freeglut (/users/path/particles/Debug/particles): failed to open display ':0'
logout
CUDA Particles Simulation Starting...
grid: 64 x 64 x 64 = 262144 cells
particles: 16384
CUDA error at ../src/particleSystem_cuda.cu:85 code=79(cudaErrorInvalidGraphicsContext) "cudaGraphicsGLRegisterBuffer(cuda_vbo_resource, vbo, cudaGraphicsMapFlagsNone)"
最佳答案
我将提供一个冗长的答案,因为我刚刚完成了这个工作。但是,在继续这条道路之前,我建议您尝试使用NoMachine NX之类的解决方案,该解决方案应该已经内置了一些此功能。它可能满足您的需求。
您可以使用VirtualGL and TurboVNC组合访问远程工作站(甚至是无头工作站)以进行图形化桌面访问,还可以访问CUDA和OpenGL加速。以下说明非常特定于特定的计算机配置(例如linux OS等),因此,如果进行更改,它们很可能会中断,并且您必须找出不同之处。对于CentOS 6.x,这应该是一个很好的方法,对于其他方法,它只是一个指南。该配方主要假设仅添加了一个Tesla / CUDA GPU。如果要配置多个GPU,则应该可以,但是只有一个用于OpenGL加速-在xorg.conf
中只需配置一个。
可以使用没有显示输出的Tesla卡完成此设置(例如,K40c。K20变体是一种特殊情况,但是请参阅下面的*)。在这种情况下,假定您有另一个显示卡用于初始远程工作站设置步骤。该另一张显示卡可以是任何卡,并且在安装后可以将机器转换为“无头”使用。如果您使用其他显示GPU进行设置,则最初可以将Tesla或CUDA GPU置于系统之外。
安装您的Linux操作系统。我为此测试使用了CentOS 6.2。如果您使用的是CentOS / RHEL 6.x操作系统,那么这里描述的内容应该可以为您工作。如果您使用其他操作系统,则可能有所不同。如果是这样,这些说明仅是指导,而不是配方。在安装CentOS 6.2的过程中,选择“软件开发工作站”选项,以获取我们需要的大多数图形和开发位。在安装过程中,系统将提示您创建普通用户名(root用户除外)。我们将其称为myuser
。
禁用Nouveau。在CentOS 6.x上,这些步骤将以root身份完成:
echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/disable-nouveau.conf
dracut --force
wget http://sourceforge.net/projects/virtualgl/files/2.3.3/VirtualGL-2.3.3.x86_64.rpm/download
sudo rpm -i VirtualGL-2.3.3.x86_64.rpm
wget http://sourceforge.net/projects/turbovnc/files/1.2.1/turbovnc-1.2.1.x86_64.rpm/download
sudo rpm -i turbovnc-1.2.1.x86_64.rpm
nvidia-xconfig
(从终端会话)以建立初始的
/etc/X11/xorg.conf
文件,然后修改“设备”部分以添加如下一行:
BusID "PCI:1:0:0"
lspci
或
nvidia-smi -a
确认)对于无头操作,您可以选择将这样的行添加到“屏幕”部分,但是我相信没有必要(即使对于无头)操作):
Option "UseDisplayDevice" "none"
xorg.conf
出现在此答案的末尾。
myuser
中,为
~/.vnc/xstartup.turbovnc
:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
myuser
,使用gnome桌面实用程序(系统...首选项...启动应用程序),如下所示添加启动应用程序
/opt/TurboVNC/bin/vncserver :5 -depth 24
:5
在这里有些随意,可以根据需要使用其他数字,例如
:2
,但不要使用
:0
。其余部分假定您在此处选择了
:5
。您还将希望在终端会话中也运行此行(仅一次,再次作为
myuser
),以便设置/配置vncserver以供使用。首次运行时,它可能会提示您输入密码。记住此密码-以后需要它才能用于客户端访问。
myuser
创建自动登录。以root用户身份,编辑
/etc/gdm/custom.conf
以创建/添加:
[daemon]
AutomaticLoginEnable=true
AutomaticLogin=myuser
vglserver_config
n
(这也可以,但是这里也存在安全问题。您可能希望
consult the documentation,并设法管理必要的用户组,并尝试对所有3个问题使用除
n
以外的其他选择)
myuser
中启动vncserver:
/opt/TurboVNC/bin/vncserver :5 -display 24
simpleGL
)安装了合适的glut提供程序,例如freeglut。
192.168.1.104:5
myuser
关联的图形桌面。该图形桌面尚没有与之关联的完整3D图形加速。为了将GPU用于OpenGL(和CUDA / OpenGL互操作),必须运行以
vglrun
开头的此类应用程序,如下所示:
vglrun -d :0 glxgears
:0
是因为这是与GPU图形加速相关联的实际X显示(对于登录的
myuser
)。如果您构建了CUDA示例,则可以尝试CUDA / OpenGL互操作应用程序:
vglrun -d :0 /usr/local/cuda/samples/bin/x86_64/linux/release/simpleGL
-d :0
开关:
vglrun glxgears
xorg.conf
(未对
vglserver_config
进行任何修改):
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig: version 346.46 (buildmeister@swio-display-x86-rhel47-06) Tue Feb 17 19:10:20 PST 2015
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
FontPath "/usr/share/fonts/default/Type1"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from data in "/etc/sysconfig/keyboard"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbLayout" "us"
Option "XkbModel" "pc105"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 28.0 - 52.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BusID "PCI:1:0:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "UseDisplayDevice" "none"
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection
/var/log/Xorg.0.log
可能会提供一些线索。使用
nvidia-smi
确定正确安装了CUDA驱动程序。通常,无头操作很难排除故障,因此,如果您可以安排具有显示功能的CUDA GPU进行初始设置和测试,则可能会更容易。您可以稍后切换到非显示GPU。
nvidia-smi
实用程序正确设置图形操作模式。 K20c
cannot be used for this purpose,仅用于计算。 AFAIK,其他大多数支持NVIDIA CUDA的NVIDIA GPU均可用于此目的。但是,cc2.0之前具有计算能力的GPU不能与本文中介绍的CUDA 7驱动程序一起使用。
关于ubuntu - 如何从远程计算机运行CUDA/OpenGL互操作(粒子)示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30081441/
我正在尝试使用以下命令在远程 Ubuntu 服务器的后台运行进程: sshpass -p PASSWORD ssh root@HOST 'nohup COMMAND-THAT-BLOCKS &' 不幸
普通 Ubuntu 和 ARM Ubuntu 有什么区别。我可以运行所有应用程序吗也在 ARM Ubuntu 中的普通 Ubuntu 下运行? Ubuntu 更新会自动发生吗? Torrent 下载器
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
我正在尝试预置 Xenial 图像,它工作得很好,除了分区。 cloud-init 只能增长根分区,并且在使用扩展分区内的根文件系统构建镜像时不起作用: NAME MAJ:MIN RM SIZ
我对 Ubuntu 和 OpenFoam 真的很陌生,所以尝试学习并做一些教程。我正在使用 Docker 在 Ubuntu 上使用 OpenFoam。 我将文件夹复制到特定目录,但是当我尝试使用终端访
我在使用系统启动设置运行软件时遇到问题。我有 ubuntu 20.04。我试图将这些行插入到 etc/rc.local #!/bin/bash /usr/bin/clamonacc 它不起作用。第二次
TARGETS = client server CL_OBJ = clientMain.o Controller.o UI.o List.o Movie.o Server.o Serializer.o
我有一个 ubuntu服务器系统是8.04 hardy ,我在哪里安装rabbitmq。 rabbitmq依赖于 erlang-nox (>= 1:12.b.3) ,但是在当前的 ubuntu 版本中
我有一个用于开发的 Ubuntu virtualbox 设置。当我在文件中处于 org-mode 时,org-mode 的任何热键都不起作用(例如 M-RETURN 用于创建新标题)。我该怎么做才能让
我的 SchemaCrawler(版本 15.01.03)模式图在 Ubuntu 18.04 LTS 上截断表名。看起来表格通常被画得太窄,因为“[TABLE]”符号也开箱即用。在我的 Mac 上渲染
在 Ubuntu 中,设置应用程序中有几个地方有一个非常漂亮的 ListView ,带有添加/删除按钮,包括外观、键盘布局、隐私、蓝牙等。他们使用什么小部件?我开始使用 Glade 开发我的第一个 U
需要帮助卸载 jjrofiler。没有意识到它需要许可证。通过 .sh 可执行文件安装。 最佳答案 如果您转到 jProfiler 安装目录,您将找到名为 uninstall 的可执行文件,只需从终端
我一直在寻找几天,我没有想出解决方案。我是 ruby 新手,但我想通过使用 spree 开发自己的在线商店。 我使用:rails:Rails 3.2.13 ruby :ruby-1.9.3-p42
我尝试使用以下命令从/usr/local/bin 中删除我的 python2.7 和 python3 文件夹:sudo rm -rf python2.7 和 sudo rm -rf python3。后
在 ubuntu 服务器中(使用 ssh 协议(protocol)), 如何更改因不活动而断开连接的时间? 最佳答案 你能在 .bash_profile 中加入“exec screen -R”,在 .
我使用以下配置在 /etc/apache2/site-available/mysite.local 中创建了一个虚拟主机: ServerAdmin webmaster@localhost
我为大约 210 个用户新设置了一个代理服务器。它运行 ubuntu server 2012 和 squid3。问题是在凌晨 1:30 之后,如果用户尝试打开 google.com、youtube.c
gitlab-ci-multi-runner 1.0.2 (ea19241) Using Shell executor... Running on ip-... Cloning repository.
我有一个备份服务器,它每小时接收许多 rsync 连接。由于打开太多 rsync 实例可能会导致崩溃,我想使用 Semaphore 来限制并发实例的数量。 .我的想法是这样的: ssh root@ba
我有同一个库的多个版本,我的程序动态链接到这些库。有时我想更改使用的版本。 我一直在阅读,出于安全原因,新版本的 Ubuntu 不再支持 LD_LIBRARY_PATH。我可以将路径添加到 /etc/
我是一名优秀的程序员,十分优秀!