SON DAKİKA

Nvdia

RAPIDS: Sıfır Kod Değişikliği ile Hızlandırma, IO Performans Artışları ve Out-of-Core XGBoost Özellikleri

Son iki sürümde RAPIDS, Python makine öğrenimi için kod değiştirme gerektirmeyen hızlandırmalar, büyük IO performans iyileştirmeleri, hafızayı aşan XGBoost eğitimi, geliştirilmiş kullanıcı deneyimleri ve daha ölçeklenebilir ETL (Veri Taşıma) yenilikleri sundu.

Bu güncellemelerin ve duyuruların bazılarını NVIDIA GTC 25‘te vurguladık. Bu yazıda, önemli noktaları yeniden gözden geçirebilirsiniz.

NVIDIA cuML, scikit-learn ve daha fazlası için kod değişikliği gerektirmeyen hızlandırma sağlıyor

Açık beta olarak duyurulan NVIDIA cuML, artık scikit-learn, UMAP ve hdbscan gibi çalışma süreçlerinde kod değişikliği olmaksızın hızlandırma getiriyor.

Bar chart comparing the performance of cuml-accel to scikit-learn 
Şekil 1: cuML’in GPU’larla sağladığı hızlandırmaların scikit-learn, UMAP ve hdbscan’a kıyasla performansı

cuML için bu yeni kullanıcı deneyimi, veri bilimcilerin tanıdık PyData API’lerini kullanmaya devam etmelerini sağlıyor ve NVIDIA GPU’larını otomatik olarak kullanarak önemli performans artışları sunuyor. Hız artışları, algoritma ve veri setine bağlı olarak 5-175 kat arasında değişiyor.

Bu yeni özelliği kullanmaya başlamak için, standart CPU makine öğrenimi kütüphanelerini içe aktarmadan önce IPython uzantısını yüklemeniz yeterli.

%load_ext cuml.accel
 
from sklearn.datasets import make_classification
from sklearn.ensemble import RandomForestClassifier
 
X, y = make_classification(n_samples=500000, n_features=100, random_state=0)
rf = RandomForestClassifier(n_estimators=100, random_state=0, n_jobs=-1)
rf.fit(X, y)

Daha fazla bilgi için cuML belgeleri‘ni ziyaret edebilirsiniz.

cuDF’de Önemli IO Performans İyileştirmeleri

Son iki sürümde, NVIDIA cuDF dosya okuyucularında büyük performans kazançları elde edildi, ister bulutta ister yerel ortamda çalışıyor olun.

Bulut Nesne Depolama

Bulutta veri işleme yükleri için, dosyaların uzaktan nesne depolamada (Amazon S3, Google Cloud Storage, Azure Blob Storage vb.) saklanarak okunması yaygındır.

NVIDIA KvikIO kullanılarak ve Parquet dosya ayaklarının okuma işlemi paralel hale getirilerek, cuDF ve Dask kullanan yüklemeler artık Amazon S3 üzerinden Parquet dosyalarını %300’den fazla daha hızlı okuyabiliyor.

Bar chart showing throughput of Dask-cuDF with s3fs vs. KvikIO.
Şekil 2: Dask-cuDF ile s3fs ve KvikIO kullanılarak yapılan throughput karşılaştırması

Bu benchmark, S3’ten g4dn.12xlarge EC2 instance’a bir Parquet veri seti okunmasını içermektedir. Dask kümesinde 4 işçi vardır. Bu sonuçlar, Parquet ayaklarını paralel okuma optimizasyonu içeren cuDF 25.04 sürümü için geçerlidir.

Bu özellik artık varsayılan olarak etkin, bu nedenle herhangi bir değişiklik yapmadan daha hızlı performans göreceksiniz.

Bu çalışma hakkında daha fazla bilgi için NVIDIA KvikIO ile Yüksek Performanslı Uzaktan IO başlıklı blog yazısını okuyabilirsiniz.

Geliştirilmiş Sıkıştırma Çözümleme Özellikleri

NVIDIA Blackwell mimarisi, veri işlemede tasarlanmış bir donanım sıkıştırma motoru içeriyor. 25.02 sürümünde Blackwell desteği ile cuDF, bu özelliği kullanarak IO yoğun iş yüklerine önemli performans artışları sağlıyor.

GPU hızlandırmalı Polars ile bir sistemde PDS benchmark’ını çalıştırdığımızda, yazılım tabanlı GPU kernel sıkıştırmasını kullanmaya oranla, donanım tabanlı sıkıştırma motoru ile %35 daha hızlı sonuçlar elde ettik.

Bar chart showing benchmark runtimes using kernel decompress and hardware decompress.
Şekil 3: PDS-H benchmark sonuçları

Karşılaştırma, cuDF 25.04, nvCOMP 4.2.0.11 ve Snappy ile sıkıştırılmış Parquet dosyaları kullanılarak yapılmıştır. “Kernel sıkıştırma” durumu, bir CUDA async havuz MR kullanır; “Donanım sıkıştırma” durumunda ise RMM havuz MR kullanılır ve performans artışı, Blackwell Sıkıştırma Motoru’nun düşük gecikmesi ve yüksek hızı sayesinde elde edilmiştir.

Polars GPU Motorunda Kullanıcı Dostu Geliştirmeler

Blackwell sıkıştırma motoru, Polars GPU motoru (cuDF ile desteklenmektedir) kullanıldığında performansı artırabiliyor. Geçmişte performans kritik iken, ergonomi ve geliştirme deneyimi de Polars’ın kullanıcıları tarafından beğenilmektedir.

RAPIDS 25.04 ve Polars 1.25 ile başlayarak, Polars topluluğu ile işbirliği yaparak hızlandırılmış Polars’ı daha kullanıcı dostu hale getirmek için iki çok talep edilen özellik eklendi.

Global Yapılandırma

Kullanıcılar artık set_engine_affinity arayüzü ile varsayılan bir motor seçebilirler. Bu, her Polars sorgusunda GPU yürütmesi seçmek yerine, iş akışınızın başlangıcında bunu bir kez yapılandırmanızı sağlar.

import polars as pl
pl.set_engine_affinity(“gpu”)

df = pl.LazyFrame({"a": [1.242, 1.535]})
q = df.select(pl.col("a").round(1))
result = q.collect()
print(result)

​​shape: (2, 1)
┌─────┐
│ a   │
│ --- │
│ f64 │
╞═════╡
│ 1.2 │
│ 1.5 │
└─────┘

Eğer GPU motoru belirli bir sorguyu desteklemiyorsa, yürütme otomatik olarak varsayılan Polars CPU motoruna geçiyor.

Daha fazla ayrıntı için global motor yapılandırması dokümanına göz atabilirsiniz.

GPU Farkındalığına Sahip Profil Oluşturma

Polars profil oluşturucu, Polars sorgularının performansını anlamak için harika bir yoldur. Şimdi, CPU veya GPU üzerinde çalıştığınızda profili kullanabilirsiniz.

.profile() metodunu LazyFrame üzerinde kullanarak, GPU üzerinde profil oluşturma desteği sunulmaktadır.

Profil oluşturucu ile GPU yürütmesi kullanmak için, profil oluşturucuyu GPU motorunu kullanmaya yönlendirin:

q = (
    pl.scan_parquet("lineitem.parquet")
    .filter(pl.col("l_shipdate") <= var1)
    .group_by("l_returnflag", "l_linestatus")
    .agg(
        pl.sum("l_quantity").alias("sum_qty"),
        pl.sum("l_extendedprice").alias("sum_base_price"),
        (pl.col("l_extendedprice") * (1.0 - pl.col("l_discount")))
        .sum()
        .alias("sum_disc_price"),
        (
            pl.col("l_extendedprice")
            * (1.0 - pl.col("l_discount"))
            * (1.0 + pl.col("l_tax"))
        	)
        	.sum()
        	.alias("sum_charge"),
        	pl.mean("l_quantity").alias("avg_qty"),
        	pl.mean("l_extendedprice").alias("avg_price"),
        	pl.mean("l_discount").alias("avg_disc"),
        	pl.len().alias("count_order"),
    )
    .sort("l_returnflag", "l_linestatus")
)

df, profile = q.profile("gpu")
Chart showing a profile using the new Polars GPU profiler.
Şekil 4: Yeni Polars GPU profil oluşturucu ile oluşturulmuş bir zaman çerçevesi

Daha fazla bilgi için Polars LazyFrame Profil belgesine göz atabilirsiniz.

Hafızayı Aşan XGBoost ile En Büyük Veri Setleri İçin Eğitim

DMLC topluluğu ile işbirliği içinde Mart ayında XGBoost 3.0’ı yayımladık. Bu sürüm, harici bellek arayüzünde önemli bir tasarım değişikliği içeriyor. Artık veri setleri, belleğe sığmayacak kadar büyük olduğunda bile etkili bir şekilde model eğitimi yapabiliyorsunuz.

Bu işlevselliğin, NVIDIA GH200 Grace Hopper ve NVIDIA GB200 Grace Blackwell gibi tutarlı bellek sistemleri için optimize edildiği belirtildi. Sonuç olarak, bir Grace Hopper sistemi, RAPIDS Bellek Yöneticisi (RMM) kullanarak 1 TB’dan fazla veri kümesi üzerinde rahatlıkla model eğitebiliyor.

Büyük hafıza aşan eğitim için yeni ExtMemQuantileDMatrix arayüzünü ve bir veri iteratorünü kullanarak başlayabilirsiniz.

import cupy as cp
import rmm
from rmm.allocators.cupy import rmm_cupy_allocator

mr = rmm.mr.PoolMemoryResource(rmm.mr.CudaAsyncMemoryResource())
rmm.mr.set_current_device_resource(mr)
cp.cuda.set_allocator(rmm_cupy_allocator)

with xgboost.config_context(use_rmm=True):
    # ExtMemQuantileDMatrix için iteratorleri oluşturun
    # ...
    # ExtMemQuantileDMatrix'i oluşturun ve eğitime başlayın
    Xy_train = xgboost.ExtMemQuantileDMatrix(it_train, max_bin=n_bins)
    # Eğitim DMatrix'ini referans olarak kullanın
    Xy_valid = xgboost.ExtMemQuantileDMatrix(it_valid, max_bin=n_bins, ref=Xy_train)
    booster = xgboost.train(
        {
            "tree_method": "hist",
            "max_depth": 6,
            "max_bin": n_bins,
            "device": device,
        },
        Xy_train,
        num_boost_round=n_rounds,
        evals=[(Xy_train, "Train"), (Xy_valid, "Valid")]
    )

Harici bellek arayüzü ayrıca çoklu GPU ve dağıtık eğitim desteklemekte, bu sayede en büyük veri setlerine ölçeklenmek mümkün.

Yeniden Tasarlanmış Orman Çıkarım Kütüphanesi

cuML 25.04 sürümü ile birlikte, Orman Çıkarım Kütüphanesi (FIL) deneysel versiyonu artık daha yüksek performansla stabil hale geldi ve üretim için hazır durumda.

Kuruluşlar, XGBoost, LightGBM ve Random Forest gibi ağaç modellerinin üretimde maksimum çıkarım performansını sağlamak için FIL’e güveniyorlar.

Bu tamamen yeniden tasarlanmış FIL, orijinal FIL’e göre %40’lık bir hız artışı sağlıyor. Bu, geniş bir model parametre yelpazesi üzerinde yapılan testlere dayanmaktadır.

A heatmap showing speedups of the new version of FIL compared to the previous version
Şekil 5: cuML 25.04’te FIL hız artışları önceki sürümlere kıyasla.

Hız artışları, modelin özelliklerine (derinlik, ağaç sayısı ve çıkarımda kullanılan grup boyutu gibi) bağlı olarak değişmektedir.

Ayrıca geri bildirimler doğrultusunda, ağaç modellerinin dağıtım aşamasını iyileştirmek için üç yeni özellik de eklendi:

  • optimize metodu; en iyi yapılandırmayı automatik olarak bulmak için kullanıcıların yalnızca bu metodu çağırmaları yeterli. FIL, optimal parametreleri otomatik olarak kullanıcı adına kullanır.
  • Her ağacın son sonuca katkısını analiz etme özelliği (.predict_per_tree) ve bir ağacın bireysel yaprak düğümlerine erişim ve manipülasyon yapabilme yeteneği (.apply)
  • GPU’lara sorunsuz geçiş yapabilen yeni bir CPU yürütme modu.

Platform Güncellemeleri: Blackwell Desteği ve Conda İyileştirmeleri

Son birkaç ayda, hızlandırılmış veri bilimi iş yüklerini nerede ve nasıl çalıştırabileceğinize dair iki önemli iyileştirme yapıldı.

25.02 sürümü ile birlikte, tüm RAPIDS projeleri artık NVIDIA Blackwell mimarisine sahip GPU’lar tarafından destekleniyor, bu da sıkıştırma motoru gibi donanıma dayalı işlevsellikleri içeriyor.

Ayrıca, RAPIDS kütüphanelerinin Conda ile kurulumu, x86 ve ARM SBSA tabanlı sistemlerde CUDA 12 ile “katı” kanal önceliğiyle yapılabilmektedir. Bu uzun süredir beklenen talep, ortamların oluşturulmasını ve paketlerin yüklenmesini hızlandırabilir. Daha önce RAPIDS kütüphanelerinin “esnek” kanal önceliği olarak ayarlanması gerekiyordu.

Bu durum, 2 yıl veya daha uzun bir süre önceki sürümler için bazı sonuçlar doğurmaktadır. Daha fazla bilgi için RAPIDS belgelerine göz atabilirsiniz.

Google Colab AI Asistanları

Google Colab, veri bilimi için en popüler yönetilen not defteri platformlarından biridir ve GPU destekli çalışma sürelerine basit arayüzler sunar.

Now, cuML ve GPU hızlandırmalı Polars, Google Colab’a entegre edilmiştir. Bu, Colab’ın hızlandırılmış veri bilimi kütüphanelerinin alanını cuDF, pandas ve NetworkX’ten genişleten bir gelişmedir. Bu eklentiler sayesinde, not defterinizin başında cuDF, cuML, ve cuGraph-destekli uzantıları yükleyerek kod değişikliği olmadan hızlandırılmış veri bilimine erişebilirsiniz.

AI asistanı Gemini, artık “RAPIDS-farkındalık” ile donatılmıştır. Gemini’ye bir GPU kullanmak istediğinizi belirttiğinizde, GPU hızlandırmalı pandas kodu önerileri sunmaktadır.

A Google Gemini prompt and response where Gemini recommends using the cudf.pandas extension to accelerate the reading of a parquet file on the GPU
Şekil 6: Gemini artık hızlandırılmış veri işleme için cudf.pandas kodunu öneriyor.

Gemini asistanına, bir GPU kullanmak istediğinizi belirtmeniz yeterlidir.

Sonuç

25.02 ve 25.04 RAPIDS sürümleri, kod değişikliği gerektirmeyen Python ML hızlandırmaları, büyük IO performans artışları ve genişletilmiş XGBoost eğitimi desteği ile önemli yenilikler sunuyor. Bu güncellemeler, gelecekte daha güçlü veri bilimi iş akışlarına zemin hazırlıyor.

Geri bildiriminizi GitHub‘da bekliyoruz. 3.500’den fazla üyesi olan RAPIDS Slack topluluğuna katılarak GPU hızlandırmalı veri işleme hakkında konuşabilirsiniz. RAPIDS’e yeni başlayanlar için, başlayabileceğiniz kaynaklara göz atmayı unutmayın.

NVIDIA GTC 2025’te, hızlandırılmış veri bilimi her yerdeydi. Kaçırdıysanız, veri bilimi oturumları ve atölyeleri listesini keşfetmeye devam edebilir ve talep üzerine oturumları izleyebilirsiniz, bunlar arasında:

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

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

İlgili Teknoloji Haberleri