SON DAKİKA

Nvdia

Polars GPU Parquet Okuyucusunu Verimli Bir Şekilde Ölçeklendirme Yöntemleri

Büyük veri setleri ile çalışırken, veri işleme araçlarının performansı kritik bir öneme sahiptir. Polars, hızı ve verimliliği ile bilinen açık kaynaklı bir veri manipülasyon kütüphanesidir. cuDF tarafından desteklenen GPU hızlandırmalı arka planı, performansı önemli ölçüde artırabilir.

Ancak, Polars GPU arka planı‘nın gücünden tam olarak yararlanmak için veri yükleme sürecini optimize etmek ve iş akışının gerektirdiği belleği etkin bir şekilde yönetmek önemlidir. GPU arka planının geliştirilmesiyle birlikte, yüksek büyüklükteki veri setleri kullanılırken yüksek performansı sürdürmek için birkaç ek teknik ortaya çıkmıştır. Mevcut Polars GPU Parquet okuyucu (24.10 sürümüne kadar) daha büyük veri setleri için ölçeklenmemektedir.

Bu yazıda, bir parçalı Parquet Okuyucusu ile Birleştirilmiş Sanal Bellek (UVM) kullanarak, hem parçalı okuyuculara hem de CPU tabanlı yaklaşımlara göre nasıl daha iyi performans elde edilebileceğini inceleyeceğiz.

Ölçek Faktörleri ve Parçalı Olmayan Okuyucularla İlgili Zorluklar

Ölçek faktörü (SF) arttıkça, parçalı olmayan GPU Polars Okuyucusu (24.10) genellikle zorluklar yaşar. SF200’den sonraki performans ciddi şekilde düşmektedir. Bazı durumlarda, örneğin Sorgu 9’da, parçalı olmayan GPU okuyucusu SF50’ye ulaşmadan başarısız olur. Bu sınırlama, büyük Parquet dosyalarını GPU belleğine yüklerken ortaya çıkan bellek kısıtlamalarından kaynaklanmaktadır. Parçalı olmayan Parquet Okuyucu grafiğindeki eksik veriler, daha yüksek ölçek faktörlerinde karşılaşılan bellek dışı (OOM) hatalarını vurgulamaktadır.

Parçalı Parquet Okuma ile I/O ve Zirve Belleği İyileştirme

Bu bellek kısıtlamalarını aşmak için parçalı bir Parquet Okuyucusu kullanılmak durumundadır. Parquet dosyasını daha küçük parçalarda okumak, bellek ayak izini azaltarak Polars GPU’nun daha büyük veri setlerini işlemesine olanak tanır. 16 GB geçiş okuma limiti ile parçalı Parquet Okuyucusu kullanmak, belirli bir sorguya göre daha yüksek ölçek faktörlerinde çalıştırma imkanı sağlamaktadır. Örneğin Sorgu 9 için, parçalı Parquet okuma 16 GB veya 32 GB belleğe ihtiyaç duymaktadır.

Daha Büyük Veri Setlerini UVM ile Okuma

Parçalı okuma bellek yönetimini geliştirirken, UVM entegrasyonu performansı bir üst seviyeye taşıyor. UVM, GPU’nun sistem belleğine doğrudan erişmesini sağlayarak bellek kısıtlamalarını daha da hafifletiyor ve veri transfer verimliliğini artırıyor.

Bir karşılaştırma yapmak gerekirse, UVM olmayan parçalı okuma sınırına ulaşmadan önce SF100’de OOM hatası ile karşılaşmaktadır. Ancak, parçalı ve UVM ile yapılan okuma daha yüksek ölçek faktörlerinde sorguların başarıyla çalıştırılmasına olanak tanıyor, ancak iş hacmi etkilenmektedir.

Görüntü 3, belirgin bir avantaj gösteriyor. UVM etkinleştirildiğinde parçalı Parquet Okuyucu ile çok daha fazla ölçek faktöründe başarılı bir şekilde sorgular gerçekleştirilmektedir; bu durum, parçalı olmayan Parquet Okuyucuya kıyasla oldukça dikkat çekici.

Stabilite ve Performans Arasındaki Denge

Optimal pass_read_limit seçerken, stabilite ve performans arasında bir denge kurmak oldukça önemlidir. Görüntü 1-3’e bakıldığında, 16 GB veya 32 GB pass_read_limit‘in en iyi stabilite ve performans kombinasyonunu sunduğu sonucuna varılmaktadır.

  • 32 GB pass_read_limit: Tüm sorgular başarılı oldu, ancak Sorgu 9 ve Sorgu 19 OOM hatalarıyla başarısız oldu.
  • 16 GB pass_read_limit: Tüm sorgular başarıyla tamamlandı.

Parçalı-GPU ile CPU Karşılaştırması

Sorgunun gözlemlenen iş hacmi genellikle CPU Polars’dan daha yüksek olup, birçok sorgunun parçalanmadan tamamlanmasını sağlar. 16 GB veya belki de 32 GB pass_read_limit makul bir seçenek olarak görünmektedir. Bu sınırlar, parçalı olmayan Parquet ile karşılaştırıldığında daha yüksek ölçek faktörlerinde başarılı işlem sağlar.

Sonuç

Polars GPU için, parçalı Parquet Okuyucu ve UVM entegrasyonu, büyük veri setleri ve yüksek ölçek faktörleri ile çalışırken genellikle Polars CPU ve parçalı olmayan Parquet Okuyucudan daha iyidir. Veri yükleme sürecini optimize ederek, Polars GPU’nun tam potansiyelini ortaya çıkarabilir ve önemli performans kazançları elde edebilirsiniz. cudf-polars 24.12 ve üzeri sürümlerde, parçalı Parquet Okuyucu ve UVM, bir Parquet dosyasını okumak için varsayılan yaklaşım haline gelmiştir. Bu güncellemeler, tüm sorgular ve ölçek faktörleri boyunca yukarıda belirtilen iyileştirmeleri sağlamıştır.

Hızlıca başlamak için cuDF Polars’ı yükleyin.

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri