NVIDIA cuPyNumeric, NumPy kütüphanesinin dağıtımlı ve hızlandırılmış bir alternatifini sunmayı amaçlayan bir kütüphanedir. Bu kütüphane, Legate çerçevesi üzerine inşa edilmiştir ve çoklu GPU ve çok düğümlü (MGMN) hızlandırılmış hesaplamalar için **sıfır kod değişikliği** ile ölçeklenebilirlik sağlar.
cuPyNumeric 25.03, güçlü yeni yetenekler ve kullanıcılar ile geliştiriciler için artırılmış erişilebilirlik sağlayan önemli bir güncellemeyi beraberinde getiriyor. Detayları bu yazıda bulabilirsiniz.
Tam Yığın Artık Açık Kaynak
cuPyNumeric 25.03 ile NVIDIA, cuPyNumeric’i çalıştıran Legate çerçevesi ve çalışma katmanını Apache 2 lisansı altında açık kaynak hâline getirdi. Artık cuPyNumeric’in tüm yığını Apache 2 lisansı altında mevcuttur. Bu adım, NVIDIA’nın **şeffaflık, tekrarlanabilirlik** ve **iş birliği** taahhüdü ile uyumludur. Katkıda bulunanlar, sistemin her bileşenini **keşfedebilir, gözden geçirebilir, katkı sağlayabilir ve uzatabilir**.
PIP ile Kurulum Desteği
cuPyNumeric, başından beri conda ile yükleme desteği sunuyordu. Artık kullanıcılar, aşağıdaki basit komutla pip
ile de yükleme yapabilmektedir:
pip install nvidia-cupynumeric
Bu, kurulumu büyük ölçüde basitleştirir ve cuPyNumeric’i **iş akışlarınıza, sanal ortamlarınıza** ve **CI** süreçlerinize entegre etmeyi kolaylaştırır. MPI hariç tüm ana bağımlılıklar ya paketlenmiş ya da PyPI üzerinden kolayca çözülebilir.
Ayrıca, OpenMPI ve UCX ile birlikte, cuPyNumeric paketi, PyPI üzerinde çok düğümlü ve çok dereceli işlemleri destekler. Geliştiricilerin, cuPyNumeric’i yalnızca bir düğümde çoklu GPU’lar ile değil, aynı zamanda çok GPU’lu çok düğümlü küme ortamlarında da kullanmalarını sağlar.
Örnek Kurulum
cuPyNumeric’i SLURM Küme ortamlarında yükleyip çalıştırmanın bir örneği aşağıda gösterilmektedir.
Adım 1: Ortamı Ayarlayın
Küme sistemine giriş yaptıktan sonra, CUDA ve MPI dahil olmak üzere temel ortam modüllerini yükleyin. Bunlar, cuPyNumeric’i çok düğümlü veya çok dereceli bir ortamda çalıştırmak için gerekli olan bağımlılıklardır. Bu modüller kümenizde mevcut değilse, manuel olarak yükleyebilir veya yüklemesini istemek için sistem yöneticinize başvurabilirsiniz.
module purge # mevcut modülleri temizle
module load cuda # CUDA araç takımı
module load openmpi # Açık MPI
Ardından, bir sanal ortam oluşturun ve etkinleştirin (bu önerilir). Eğer paketleri mevcut Python ortamınıza yüklemek istemiyorsanız bu adım gerekli değildir.
python -m venv legate
source legate/bin/activate
Adım 2: Paket Yükleme
cuPyNumeric ve Legate’i pip
ile yükleyin:
pip install legate nvidia-cupynumeric
Adım 3: Uygulamaları Çalıştırma
srun
komutunu kullanarak etkileşimli hesaplama düğümleri ayırın:
srun -p partition-name # Bir bölüm isteği
-N 2 # 2 hesaplama düğümü
--gres=gpu:8 # Her düğüm için 8 GPU
--time=00:30:00 # 30 dakikalık zaman limiti
--pty bash # Etkileşimli shell başlat
Daha sonra bir cuPyNumeric programı çalıştırın:
legate --gpus 8 # Süreç başına GPU sayısı
--ranks-per-node 1 # Düğüm başına süreç
--nodes 2 # Toplam düğüm (N ile eşleşir)
--launcher mpirun # MPI ile başlat
./prog.py
SLURM betik iş gönderimi ile de çalıştırma desteği bulunmaktadır:
#!/bin/bash
#SBATCH --job-name=cupynumeric
#SBATCH --nodes=2
#SBATCH --gres=gpu:8
#SBATCH --time=00:30:00
module load cuda openmpi
source legate/bin/activate
legate --gpus 8
--ranks-per-node 1
--nodes ${SLURM_NNODES}
--launcher mpirun
./prog.py
Daha fazla bilgi için, cuPyNumeric 25.03 kurulum kılavuzuna başvurabilirsiniz.
Yerel HDF5 IO Desteği
cuPyNumeric 25.03, GPU Direct Storage üzerinden HDF5 için yerel destek sunarak, büyük veri kümelerinin verimli bir şekilde işlenmesini sağlar ve bilimsel hesaplama ortamları ile **kesintisiz iş birliği** sağlar. HDF5 ile, karmaşık veri yapılarını diske **kompakt, taşınabilir** ve **performanslı** bir formatta almak ve saklamak artık mümkün.
from legate.core.io.hdf5 import from_file
import cupynumeric as np
x = from_file("data.h5", dataset_name="x")
y = from_file("data.h5", dataset_name="y")
xx = np.asarray(x)
yy = np.asarray(y)
a = 8675.309
yy[:] = a * xx + yy
Bu özellik, **yüksek performanslı hesaplama** ve veri yoğun uygulamalar için IO verimliliğinin kritik olduğu durumlarda özellikle faydalıdır.
Başlayın
NVIDIA cuPyNumeric 25.03, araştırma ve üretim ortamları için cuPyNumeric’in temellerini güçlendirir. 25.03 sürümündeki daha fazla yeni özellik ve yetenek hakkında bilgi almak için, sürüm notlarına göz atabilirsiniz. Ekibimiz, büyüyen topluluğuna minnettardır ve geribildirim, katkılar ve gelecek sürümler için fikirleri memnuniyetle karşılamaktadır. Konuşmaya katılmak için doğrudan nv-legate/cupynumeric GitHub deposuna sorunlarınızı iletebilirsiniz.