Chapter 1. Product Overview

Silicon Graphics UltimateVision graphics systems provide a major shift in capabilities and price/performance when compared to previous visualization systems but also maintain compatibility with previous Onyx systems. The best features of Onyx systems—the flexible, scalable, shared memory architecture—have been combined with the best-of-class industry-standard graphics components to create the most powerful visualization solution.

UltimateVision graphics is the next generation in the scalable graphics family, and the first product in the family that provides performance and features that rival InfiniteReality graphics but at a price to compete with clusters. UltimateVision graphics supports compositing of graphics pipes to build channels with massive performance or amazing image quality. Silicon Graphics Onyx4 UltimateVision systems can be configured with up to 32 graphics pipelines and 64 CPUs with up to 128 GB of memory. Each graphics pipe is also capable of driving two independent displays providing up to 64 channels of video.

System Configurations

Onyx4 systems can be ordered in three different configurations: Power, Team, and Extreme. They are all fundamentally built from the same components, but each of these configurations fit a different-sized solution:

  • Power configuration

    • 2-8 CPUs

    • 2 or 4 graphics pipes

    • No routers

  • Team configuration

    • 8-16 CPUs

    • 4, 6, or 8 graphics pipes

    • 2 routers

  • Extreme configuration

    • 16-64 CPUs

    • 8-32 graphics pipes (always in pairs)

    • 4 routers

Scalable System Architecture

The single most distinguishing feature that differentiates the UltimateVision product line from competition is its high scalability. UltimateVision graphics systems offer a single system image (SSI) architecture, in which there is only one copy of the operating system (OS) running and all the memory and devices are available to all the processors. While the traditional Symmetric Multi-Processing (SMP) architectures do not scale well beyond 24 CPUs and 3 pipes, NUMAflex, an SGI implementation of Cache Coherent Non-Uniform Memory Access (ccNUMA), enables UltimateVision systems to expand efficiently well beyond the traditional bus-based architecture systems.

UltimateVision systems can be configured with as many as 64 processors, but the ccNUMA architecture, which is also used in the Origin and Altix product lines, has been shown to handle as many as 512 CPUs and 1 TB of shared memory. This is accomplished primarily by scaling system bandwidth as CPUs and memory are added provide balanced resources even for very large systems.

Some of the scalability that SGI provides can be emulated using traditional architectures by clustering multiple SSI machines together. Of course, using clusters is the hard way to achieve scalability. The difficulties start with the physical configuration of the nodes, disks, operating systems, network infrastructure, rack space, power distribution, and all the other components that SGI ships ready to plug in, boot up, and get to work. The day-to-day issues of managing a cluster—like nodes crashing and needing to be rebooted, processes hanging and needing to be reset, disks failing or filling up and needing to be maintained—make clusters a significant long-term challenge. In addition, technology updates on clusters are pretty much complete “fork-lift” upgrades due to the complications of using components with unsynchronized life cycles. An SSI machine with a single file system, single operating system, and single view of all the processes running on the system makes working with even the largest configuration straightforward.

A cluster runs as many operating systems and instances of the application as there are nodes. When a problem can be easily sliced into smaller chunks that do not require much communication, this approach works well. Unfortunately, for most applications that want to take advantage of the power of visualization, typical graphics problems are extremely difficult to split up into small enough chunks with low enough communication requirements to make clusters feasible. On SGI systems, global shared memory and support for multiple OpenGL streams from one application removes the complications and performance issues of communicating between multiple instances of an application and an operating system.

Scalable Graphics Architecture

UltimateVision systems were architected to facilitate scaling of graphics performance by attaching multiple modules. Up to 16 graphics modules, with each module having 2 graphics pipes, can be attached to a single shared memory in order to scale various aspects of graphics performance. The pipes are fully synchronized to make the system particularly well suited for such visually challenging applications like immersive environments without distracting and disruptive image tearing. In addition, multiple pipes can be configured to participate in a single rendering task thanks to a unique graphics compositing architecture.

GPU scalability starts at the system level. SGI systems are based on small building blocks known as bricks. A brick can be CPUs with memory, only memory, CPUs with memory and graphics cards, only graphics cards, I/O units, routers, and other types of components. NUMAlink technology enables these bricks to be a single system, in contrast to cluster components connected with a standard interconnect. The sum of all the bricks and their connections creates a high-performance memory fabric. This fabric provides the SSI capabilities: a single OS, a single large pool of memory, and a single process space with all resources ( GPUs, memory, disk, and so on) accessible from every other CPU. A system can be as small as 2 processors and 2 graphics cards or as large as hundreds of processors and tens of graphics cards. Scalability allows an application to drive a single GPU with a small dataset or 10 GPUs with a 10X larger data set. Memory bandwidth, disk I/O, bus bandwidth, efficient kernel locking, and many other factors go into creating this scalability.

Scalability reaches beyond rendering to system accessibility and flexibility. SGI provides hardware compositing solutions to combine multiple GPU output streams together into a single video signal that can be sent to a display device. Many system-level tools are also provided to help configure and manage systems with large numbers of GPUs and CPUs. High-performance OpenGL applications that explicitly take advantage of large CPU- and GPU-count systems will work very well in this new architecture. Conversely, there is also a software layer, OpenGL Multipipe, that allows single pipe applications to scale seamlessly across the GPUs available in a system without the need to write any explicit parallel CPU or GPU code. Additional toolkits that enable an application to choose the level of scalability assistance needed are also available. OpenGL Multipipe SDK is an API layer that provides performance-oriented scaling. OpenGL Performer is an alternative scaling API that is focused on enabling applications to manage the data through a scene graph paradigm.

Commodity Graphics Features

Silicon Graphics UltimateVision systems utilize the best-of-breed commodity GPUs with their continuously improving performance and evolving feature sets. Applications currently running on Onyx systems will, with few exceptions, be able to run on the new architecture. Taking advantage of all the subtle differences and power of scalable graphics can take more development effort. However, support for the latest version of OpenGL, fully hardware-accelerated transform, lighting, rasterization, and compositing is already present, as are many of the more esoteric features and capabilities:

  • Ttransform rate of 300 Mtris/s

  • Fill rate of 2.4 Gpix/s

  • Vertex programmability

  • Fragment programmability

  • 16 textures per pass

  • Two-sided lighting

  • Directional and local lighting

  • Up to 8 light sources

  • 6 user-defined clipping planes

  • Fast Z and color clears

  • Floating point color in texture engine, shader engine, and the framebuffer

  • 128-bit rendering precision (render pipeline with 24 bits per component and textures with 32 bits per component)

  • Vertex array objects (VAOs) and element arrays

  • Cubemap, multitexture, and so on

  • 2x/4x/6x full-scene antialiasing modes

  • Dual DVI-I support of any combination of digital and analog displays (Caveat: the second output can only be analog.)

  • Maximum resolution of 2048x1536 per display

  • Independent resolution and refresh rate selection for any 2 connected displays

Many of these features will be well familiar to existing Onyx users. However, the new hardware introduces enough new features and idiosyncrasies to warrant a detailed look. The following chapters describe some of these issues in greater detail.