Installing Parallel Nsight
Parallel Nsight can be downloaded from its Developer Zone homepage.
Installing Parallel Nsight is fairly straightforward as described in the How To: … sections of the online documentation. Basically, the user downloads a host package and runs the install. Similarly, the package for the target machine is downloaded and installed. The user can select between 32- or 64-bit downloads so long as the installations are consistent between the host and target machines. Note: It is possible to create and debug 32-bit applications using 64-bit installations.
Version 1.0 of Parallel Nsight has explicit software requirements:
- Both host and target machines must be running Vista, Windows 7 or Windows Server 2008 operating systems. Windows XP will not work.
- Parallel Nsight will only work with Visual Studio 2008 service pack 1 or better. Parallel Nsight will not work with Visual Studio 2005 or 2010. The express version of Visual Studio 2008 does not support the plug-in model required by Parallel Nsight, so it cannot be used with Parallel Nsight.
Since Parallel Nsight is based on a remote debugging model that utilizes both a host and at least one target machine, some thought needs to be given to how the software will be installed and used.
By far the simplest and best performing configuration is to use Parallel Nsight on a dual-monitor workstation that supports a virtual machine and a graphics card like a Quadro FX 5800 that allows each operating system to directly access the GPU. With this configuration, Visual Studio builds occur on a powerful workstation, communications with the monitor process happen quickly over a virtual network, and accessing the target machine is as easy as looking at the second screen or moving the mouse seamlessly onto the target virtual machine to change application behavior.
Many users will actually utilize two separate machines, one for the host and one for the target machine. The host system must run Visual Studio so it should be powerful enough to perform the software build quickly and not bottleneck the development process. Smaller projects can probably be built on a laptop but larger projects will likely require a higher performance workstation. Similarly, the target machine should provide the capabilities envisioned for a typical application runtime environment.
Communication between host and target machines via a WiFi network link will work, but note that starting the application requires copying the executable plus any needed dlls from the host to the target machine. Some applications might also require moving data and configuration files as well. Parallel Nsight performs an incremental data move so only those files that have changed will be moved from the host to the target machine. Heavy bandwidth consumption can occur when the project is first sent to the target machine or when the entire project is rebuilt. Modified files are identified via an rsync-like mechanism to help reduce bandwidth consumption after the initial target machine setup.
Similarly, the network connecting the machines should allow the monitor process to return large amounts of data to the host in a timely fashion, which can happen when performing device queries and application trace operations. Version 1.0 of Parallel Nsight only supports tracing that begins when the application program starts and completes when the application either exits or is killed. There is no way to set software triggers to begin and end the tracing activity so very large amounts of data can be returned to the host -- especially when it takes awhile to get to interesting application behavior or when the voluminous Trace All option is selected. Host machine disk storage requirements can also be impacted.
It is important to note that the target machine cannot be controlled with Remote Desktop. Remote Desktop appears to be a natural way to work with the target computer, but it affects how applications can interact with the GPU. While the monitor program can be started under Remote Desktop, it will not be able to access the GPU.
If Parallel Nsight is to be used with applications that require user input or viewing of output, then the host and monitor machines should be in close physical proximity or accessible via a KVM. (A KVM is a switch that connects two or more computers to the same keyboard, mouse, and monitor.) Interactive graphics based applications in particular require direct access to the target machine. If the application does not require any user interactions (e.g. it performs a calculation and exits) then there is no need to have physical access to the target machine. For these applications, the monitor program can be started on target machine boot or remotely via some remote access software such as cygwin and sshd.
Configurations that utilize two or more GPUs within a single system are also possible, but they are limited to non-graphical CUDA debugging.
Table 1, taken from the developer zone hardware and software requirements page summarizes various hardware configurations along with the current software requirements.