Felix Pinkstone
February 27, 2025 10:52
Nvidia’s Kvikio offers high-performance remote IO capabilities that use object storage services such as S3 and Azure Blob storage to optimize data processing for cloud workloads.
Nvidia has introduced Kvikio, designed to optimize remote IO operations for workloads using object storage services such as Amazon S3, Google Cloud Storage, and Azure Blob storage. According to NVIDIA, this innovation is particularly beneficial for applications that run in cloud environments where data access is important, running in cloud environments.
Understanding Object Storage
Object Storage Services are designed to manage and provide vast amounts of data. However, to utilize these services effectively, you need to understand how they work, as they are very different from traditional local file systems. One major distinction is the higher and more variable latency associated with read and write operations in object storage.
Optimizing data transfer
To enhance data transfer rates, Nvidia recommends placing compute nodes ideally within the same cloud area, close to the storage service. This setup minimizes network latency and increases data transfer reliability. The speed of light ultimately limits the data transfer rate.
File format and size
Cloud-native file formats such as Apache Parquet and Cloud-optimized Geotif can greatly improve data access efficiency. These formats allow selective metadata reading and data downloading, reducing unnecessary data transfers. Additionally, optimizing file sizes in the range of dozens to hundreds of megabytes can further improve performance by amortizing the overhead of HTTP requests.
Concurrency to improve performance
Concurrency is essential to maximize the performance of remote storage services. By creating multiple concurrent requests, the object storage service is designed to process many requests simultaneously, allowing users to increase throughput. This approach is particularly effective when using Python’s thread pool or Asyncio for parallel processing.
Benefits of Nvidia Kvikio
Kvikio stands out by automatically challenging small requests and running them simultaneously. It also facilitates efficient readings to host or device memory, especially when GPU direct storage is enabled. The benchmarks show that when reading S3 data, Kvikio achieves higher throughput compared to other libraries such as Boto3.
Benchmark Insights
Performance benchmarks reveal that when reading data from S3 to EC2 instances, Kvikio can achieve impressive throughput. For example, a 1 GB file read on a G4DN.xlarge EC2 instance showed increased throughput with higher thread counts to the best point. Similarly, task size adjustments affect maximum throughput and achieve optimal performance when task sizes are not too small or too large.
In a scenario with 360 parquet article files read by Dask Worker Processes, Kvikio enabled 20 Gbps throughput on a single node from S3, showing the efficiency of processing large data operations.
Nvidia Kvikio offers an engaging solution for data experts looking to alleviate IO bottlenecks with cloud-based workflows. Implementing these strategies allows users to significantly improve data processing speed and overall performance.
Image source: ShutterStock