Context
When loading data for visualization, it is important to consider the hardware configuration to ensure that the data is displayed correctly and to avoid rendering artifacts.
This is especially important when working with large datasets, as the available system memory (RAM) and GPU memory (VRAM) can significantly affect rendering performance and display quality. If the workflow involves animations or movies, hardware resources and application configuration become even more critical.
This article explains how hardware resources are used for rendering and how to configure the application to make the best use of the available hardware.
Below are some common scenarios and recommendations for achieving the best visualization results based on the available hardware:
1. Small datasets: These datasets fit entirely in both RAM and GPU memory. The data can be loaded and visualized using the default application settings.
2. Large datasets: These datasets fit in RAM but exceed the available GPU memory. The data can still be loaded into memory, but some application settings need to be adjusted to optimize GPU usage and visualization performance.
3. Huge datasets: These datasets exceed both the available RAM and GPU memory. In this case, an intermediate preprocessing step is required to convert the data to the LDA format. This enables the application to manage the dataset efficiently using multiple resolution levels and appropriate settings to provide the best possible visualization quality.
The following sections provide more details about each scenario, including how the available hardware resources are used and which application settings should be adjusted to achieve the best possible visualization results.
Refer to KA-01134 / Amira-Avizo Hardware Recommendations for information on how to determine your hardware specifications.
Description
The parameters that can be adjusted to improve visualization are available under Edit > Preferences > Large Data. In this tab, you can review and modify the default values for Main Memory and Video Memory for Volume.
- Main Memory: Defines the maximum amount of system memory (RAM) that can be used for data rendering. Increasing this value can improve rendering quality because more data can be kept at a higher resolution, although reaching the maximum-resolution image may take longer. By default, this value is set to 12.5% of the total system RAM, up to a maximum of 16 GB.
The maximum configurable value corresponds to the amount of RAM installed on the system. However, it is strongly recommended not to allocate all available RAM to visualization, because memory must remain available for Windows and other applications. A practical recommendation is to allocate approximately 80% to 90% of the total RAM, depending on the workload.
- Video Memory for Volume: Defines the maximum amount of GPU memory (VRAM), in MB, that can be used for volume rendering. Increasing this value can improve rendering quality by allowing more volume data to remain available on the GPU, although it may also increase the time required to reach the maximum-resolution image. By default, this value is set to 75% of the GPU VRAM, up to a maximum of 1 GB.
If the visualization contains only volume rendering, most or all of the available VRAM can be allocated to volume rendering. If both volumes and slices are used, a possible configuration is to reserve approximately 90% of the available VRAM for volume rendering and 10% for slice rendering.
The following example shows the default values in Amira-Avizo 2025.1 on a workstation equipped with 32 GB of RAM and 4 GB of VRAM:
Below, to illustrate how to configure these parameters, we will use the LDAExpertSettings module. This module is available in Amira-Avizo Software for internal purposes only. It provides visual feedback on how a volume is rendered based on the selected resolution and the available memory.
The examples below show two datasets: an 80 MB dataset on the left and a 5,000 MB dataset on the right:
The volume is subdivided in memory into cubes, or tiles, corresponding to different resolution levels. Smaller cubes represent higher-resolution regions, down to the darkest cubes, which correspond to full-resolution data and therefore provide the best available resolution:
- A large yellow cube does not mean that the application has allocated a very large voxel array for that region. Instead, it indicates that a low-resolution tile represents a large spatial area of the volume. The number of samples stored in the tile can remain close to the configured tile dimensions, but each sample represents a larger portion of the original dataset.
- A dark cube indicates that full-resolution tiles are being used for that region. This region therefore contains the highest level of detail available in the original dataset.
These cubes illustrate how memory is distributed to optimize memory usage while keeping the largest possible region at full resolution. In the smaller dataset on the left, the entire volume can be displayed at full resolution. In the much larger dataset on the right, only a limited region can be kept at full resolution, generally around the center of the scene and close to the user’s current area of interest.
The Xtra Large Data Visualization provides additional information on these concepts.
1. Small Datasets
The following example illustrates the use case for small datasets:
1.1 Load the tutorial dataset <your installation folder>\data\tutorials\chocolate-bar.am, which is 23 MB.
1.2 Use the Resample module to generate fake datasets of different sizes: 77 MB, 360 MB, and 4,000 MB.
1.3 Set Main Memory to the minimum value of 128 MB. The results are shown in the first column.
1.4 Restore Main Memory to its default value of 4,096 MB. The results are shown in the second column.
| Data size vs Main Memory | 1.3 Main Memory 128 MB | 1.4 Default Main Memory 4,096 MB |
|---|---|---|
23 MB
| ||
77 MB | ||
| 360 MB | ||
| about 4,000 MB |
2. Large Datasets
Consider a large dataset of approximately 8 GB. In this case, the dataset fits in system memory but not entirely in GPU memory. Therefore, the application parameters should be adjusted to make the best use of the available hardware and achieve optimal rendering performance.
Using the default values for high resolution:
For example, the following memory configurations can be compared:
1. Main Memory 4,096 MB and Video Memory for Volume 1,024 MB: The dataset is only partially rendered at full resolution, as shown in the images below.
2. Main Memory 32,000 MB and Video Memory for Volume 1,024 MB: The dataset is still only partially rendered at full resolution, as shown in the images below.
3. Main Memory 32,000 MB and Video Memory for Volume 4,096 MB: The dataset is entirely rendered at full resolution, as shown in the images below.
| Use Case # | Volume Visualization |
|---|---|
| 1 and 2 | |
| 3 |
3. Huge Datasets
Huge datasets are managed by the application using the LDA format.
The proposed solution is to preprocess the dataset and generate a multiresolution file. During this conversion, the image is divided into smaller cubes, called tiles, and the tile size can be selected according to the workflow requirements.
Because the dataset can be larger than the available RAM, the entire dataset is not loaded into memory at once. Instead, the application dynamically manages the data resolution and loads the most appropriate level of detail based on the available memory and visualization needs. The following diagram illustrates this approach. More details are available in the video and Excel file provided in the Xtra Large Data Visualization:
* 45 GB is the memory required at a given resolution, while 53 GB of cumulative memory is required to load that resolution.
How to Convert Data to LDA
1. Select File > Convert to Large Data Format. The Convert to Large Data Format module is created.
2. In the Inputs port, select the dataset you want to convert.
2.1 Click Add... to browse for and select the input file.
3. In the Output port, select the folder where the converted data will be saved. Two files are created:
<yourname>.am
<yourname>.dat
4. Click Apply to start the conversion.
5. The conversion process begins. Once it is complete, the newly created LDA dataset is automatically loaded into the application.
Important: Some analysis workflows require the entire volume to be loaded into memory. These workflows may therefore not be compatible with the LDA format, which is designed to manage the visualization of large datasets using tiled, multiresolution data access.
Notes
- How Resolution Is Managed During Camera Movement
When analyzing a 3D object, you typically rotate the camera and zoom in or out. During these interactions, the application dynamically adjusts the rendering resolution to maintain smooth and responsive camera movement. By default, the application tries to find the best compromise between image quality, available memory, and interactive performance.
While the camera is moving, a lower resolution may be temporarily used. Once the camera stops, the application progressively restores the full-resolution image. As a result, you may notice that the image continues to update for a short time after the camera movement has stopped.
Keep in mind that GPU memory may also be used by the operating system and other applications. Therefore, the full physical VRAM capacity may not always be available for volume rendering. To better observe how Avizo adapts the rendering quality when GPU memory is constrained, you can use the following settings, for example:
- Video Memory for Volume = 1,000 MB
- Volume Rendering Settings > Move Low Res (Advanced) = 10
Then rotate or move the camera. With these settings, you can observe how the application dynamically manages the available memory and rendering resolution. It attempts to preserve the best possible resolution in the areas of greatest visual importance, particularly near the center of the view, while reducing the resolution in less critical regions, such as areas farther from the camera or near the borders of the view. This behavior allows Avizo to provide a good balance between rendering quality and interactive performance, even when the available GPU memory is insufficient to hold the entire dataset at full resolution.
- How to Create and Configure the HxLDAExpertSettings Module
1. Open TCL console.
2. Enter the following command and press Enter:
create HxLDAExpertSettings
3. Enable LDAExpertSettings > Data from Outline. This option provides visual feedback on the tiles loaded into main memory by displaying the multiresolution topology. The outlines of tiles of full-resolution tiles are displayed in black.
Related Links
- Xtra: Large Data Visualization
- User's Guide:
- User Guide > User Interface > Preferences Dialog > Large Data TAB
- User Guide > Data Management > Load Data > Load Large Data Files
- Open Inventor description: Open Inventor: SoLDMGlobalResourceParameters Class Reference
