NVIDIA GPU'larının ve CUDA'nın hızlandırılmış hesaplamayı nasıl mümkün kıldığı ile bugün AI altyapısının—çipler, ağ ve yazılım—modern teknolojiyi nasıl desteklediğini öğrenin.

Hızlandırılmış hesaplama basit bir fikir: genel amaçlı bir CPU'ya her işi yaptırmak yerine ağır ve tekrarlayan parçaları daha hızlı ve verimli yapabilen özel bir işlemciye (çoğunlukla GPU) yüklemek.
CPU, geniş karışık küçük görevleri—işletim sistemi çalıştırma, uygulamaları koordine etme, karar verme—yapmada iyidir. GPU ise aynı tür hesaplamaları eşzamanlı olarak çok daha fazla sayıda yapacak şekilde tasarlanmıştır. Bir iş yükü binlerce (veya milyonlarca) paralel operasyona bölünebiliyorsa—büyük matrisleri çarpmak veya aynı matematiği devasa veri partilerine uygulamak gibi—GPU "hızlandırıcı" gibi davranır ve verimi büyük ölçüde artırır.
Oyunlar GPU'ları ünlü yaptı, ama aynı paralel matematik modern hesaplamanın pek çok alanında karşımıza çıkıyor:
Bu yüzden hızlandırılmış hesaplama tüketici PC'lerinden veri merkezlerine taşındı. Sadece "daha hızlı çipler" meselesi değil—maliyet, zaman ve güç açısından önceki halde pratik olmayan iş yüklerini mümkün kılma meselesi.
İnsanlar "NVIDIA'nın hızlandırılmış hesaplama yığını" dediğinde genelde bir arada çalışan üç katmanı kastederler:
Rehberin sonunda GPU vs CPU için net bir zihinsel modeliniz, neden AI'nın GPU'lara iyi uyduğu, CUDA'nın ne yaptığı ve gerçek AI sistemlerini ölçeklemek için GPU dışında hangi bileşenlere ihtiyaç duyduğunuz konusunda açık bir fikir sahibi olacaksınız.
CPU'yu az sayıda yüksek eğitimli uzmandan oluşan küçük bir ekip gibi düşünün. Sayıları azdır ama her biri karar verme, hızlı görev değiştirme ve karmaşık "eğer bu olursa" mantığını yürütmede uzmandır.
GPU ise yüzlerce ya da binlerce yetkin asistan gibi gibidir. Her asistan uzman kadar karmaşık olmayabilir, ama birlikte aynı anda çok büyük hacimde benzer işleri halledebilirler.
CPU'lar kontrol ve koordinasyonda mükemmeldir: işletim sistemini çalıştırma, dosya yönetimi, ağ isteklerini karşılama ve çok dallı kod yollarını yürütme. Özellikle adım adım ve birbirine bağımlı işlemler için tasarlanmıştır.
GPU'lar aynı işlemin birçok veri parçasına paralel uygulanması gerektiğinde parlak performans gösterir. Tek bir çekirdeğin bir görevi tekrar tekrar yapması yerine, birçok çekirdek aynı anda yapar.
GPU'lara uygun yaygın işler:
Çoğu gerçek sistemde GPU'lar CPU'ların yerini almaz—onları tamamlar.
CPU genellikle uygulamayı çalıştırır, veriyi hazırlar ve işi koordine eder. GPU ise yoğun paralel hesaplamayı yapar. Bu yüzden modern AI sunucularında güçlü CPU'lar bulunur: iyi bir koordinasyon olmadan tüm o asistanlar boşta kalabilir.
GPU'lar başlangıçta pikselleri ve 3B sahneleri çizmek için özelleşmiş işlemcilerdi. 1990'ların sonu ve 2000'lerin başında NVIDIA ve diğerleri gölgelendirme ve geometriyi daha hızlı işlemek için daha fazla paralel birim ekledi. Araştırmacılar, birçok grafik dışı problemin de aynı işlemlerin tekrarından ibaret olduğunu fark ettiler—tam da grafik boru hattının yapılması için uygun olan.
Kısa bir zaman çizelgesi (pratik):
Grafikler doğrusal cebir üzerine yoğunlaşır: vektörler, matrisler, nokta çarpımları, konvolüsyonlar ve çok sayıda çarpma-toplama işlemi. Bilimsel hesaplama da aynı yapı taşlarını kullanır (simülasyonlar, sinyal işleme) ve modern makine öğrenmesi bunlara çokça dayanır. Ana uygunluk noktası paralelliktir: birçok ML görevi büyük veri partileri üzerinde aynı işlemleri tekrarlar. GPU'lar binlerce benzer thread'i verimli çalıştıracak şekilde tasarlandığı için CPU'ya göre çok daha fazla aritmetiği saniyede gerçekleştirebilirler.
NVIDIA'nın etkisi sadece daha hızlı çiplerle sınırlı değildi; GPU'ları günlük geliştiriciler için kullanılabilir kılmaktı. CUDA GPU programlamayı daha ulaşılabilir yaptı ve lineer cebir, sinir ağları ve veri işleme için büyüyen kütüphane seti özel kernel yazma ihtiyacını azalttı.
Daha fazla ekip GPU hızlandırmalı ürünler piyasaya sürdükçe ekosistem kendini güçlendirdi: daha fazla eğitim materyali, daha iyi araçlar, deneyimli mühendisler ve güçlü framework desteği—bir sonraki ekibin GPU kabulünü kolaylaştırdı.
Güçlü bir GPU, geliştiriciler ona ne yapacaklarını güvenilir şekilde söyleyebiliyorsa kullanışlıdır. CUDA (Compute Unified Device Architecture), GPU'ları gerçek bir hesaplama hedefi gibi hissettiren NVIDIA'nın programlama platformudur.
CUDA iki büyük işi birden yapar:
Bu katman olmadan her ekip her yeni çip nesli için düşük seviyeli GPU programlama, performans ayarı ve bellek yönetimini yeniden icat etmek zorunda kalırdı.
CUDA'da bir kernel yazarsınız; bu, aynı anda birçok kez çalıştırılmak üzere tasarlanmış bir fonksiyondur. CPU'da bir kez çağrılmak yerine binlerce (veya milyonlarca) hafif thread üzerinde başlatılır. Her thread işin küçük bir parçasını ele alır—bir piksel, bir matris satırı veya bir sinir ağı hesaplamasının bir parçası.
Ana fikir: probleminiz pek çok benzer bağımsız göreve bölünebiliyorsa, CUDA bu görevleri GPU'nun çok sayıda çekirdeği arasında verimli şekilde zamanlayabilir.
Çoğu kişi AI için ham CUDA yazmaz. CUDA genelde kullandığınız araçların altında çalışır:
Bu yüzden "CUDA desteği" AI altyapı planlamasında sıkça işaretlenen bir kutucuktur: yığına hangi optimize blokların alınabileceğini belirler.
CUDA sıkı şekilde NVIDIA GPU'larına bağlıdır. Bu sıkı entegrasyon onun hızlı ve olgun olmasının büyük bir nedenidir—ama aynı zamanda aynı kodu NVIDIA olmayan donanıma taşımayı zorlaştırır; alternatif arka uçlar veya farklı framework'ler gerekebilir.
AI modelleri karmaşık görünse de, ağır iş çoğunlukla devasa ölçekte aynı matematiğin tekrarıdır.
Bir tensör sadece çok boyutlu sayılar dizisidir: vektör (1D), matris (2D) veya daha yüksek boyutlu bloklar. Sinir ağlarında tensörler girdileri, ağırlıkları, ara aktivasyonları ve çıktıları temsil eder.
Çekirdek işlem bu tensörlerin çarpılması ve toplanmasıdır—özellikle matris çarpımı (ve konvolüsyonlar). Eğitim ve çıkarım bu deseni milyonlarca veya trilyonlarca kez çalıştırır. Bu yüzden AI performansı genelde yoğun çarpma-toplama işini ne kadar hızlı yapabildiğiyle ölçülür.
GPU'lar aynı tür hesaplamaları paralel yürütmek için tasarlandı. Az sayıda çok hızlı çekirdek yerine birçok daha küçük çekirdeğe sahiptirler ve bu çekirdekler devasa işlem ızgaralarını aynı anda işleyebilir—tensör iş yükleri içindeki tekrarlayan matematik için idealdir.
Modern GPU'lar ayrıca bu kullanım durumuna yönelik özel birimler içerir. Kavramsal olarak bu tensör-odaklı hızlandırıcılar AI içindeki çarpma-toplama desenlerini genel amaçlı çekirdeklerden daha verimli işleyerek watt başına daha yüksek verim sunar.
Eğitim model ağırlıklarını optimize eder. Genelde toplam hesaplama ve bellek üzerinden büyük tensörleri defalarca taşımak sınırlayıcıdır.
Çıkarım tahminleri sunar. Genelde gecikme hedefleri, throughput ve GPU'ya veriyi ne kadar hızlı sunabildiğiniz sınırlayıcıdır.
AI ekiplerinin önem verdiği konular:
Modern bir "GPU sunucusu" dışarıdan normal bir sunucu gibi görünür ancak iç mimarisi bir veya daha fazla yüksek güçlü hızlandırıcı kartı mümkün olduğunca verimli şekilde beslemeye odaklıdır.
Her GPU'nun kendi yüksek hızlı belleği vardır: VRAM. Pek çok AI işi GPU'nun "çok yavaş" olmasından değil—modelin, aktivasyonların ve batch boyutunun VRAM'e sığmamasından başarısız olur.
Bu yüzden insanlar "80GB GPU'lar" veya "kaç token sığar" gibi ifadelerden bahseder. VRAM bittiğinde daha küçük batch, daha düşük hassasiyet, model paylaşımı veya daha çok/büyük bellekli GPU gerekebilir.
Bir kutuya birden fazla GPU koymak yardımcı olur, ama ölçekleme GPU'ların ne kadar iletişim kurması gerektiğine bağlıdır. Bazı iş yükleri neredeyse lineer ölçeklenir; diğerleri senkronizasyon, VRAM kopyalanması veya veri yükleme darboğazları nedeniyle sınırlarla karşılaşır.
Yüksek uç GPU'lar her biri yüzlerce watt çekebilir. Sekiz GPU'lu bir sunucu normal bir raf sunucusundan ziyade bir ısı makinesi gibi davranır. Bu da demektir:
Bir GPU kutusu sadece "içine GPU konmuş bir sunucu" değil—hızlandırıcıları tam hızda besleyen, soğutan ve haberleştiren bir sistemdir.
Bir GPU etrafındaki sistem hızını belirler. "Tek güçlü sunucu"dan "birlikte çalışan çok GPU"ya geçtiğinizde sınırlayıcı genelde ham hesaplamadan veri taşıma, sonuç paylaşma ve her GPU'yu meşgul tutma kapasitesine kayar.
Tek GPU işleri çoğunlukla yerel depodan veri çeker ve çalışır. Çok-GPU eğitim (ve birçok çıkarım kurulumunda) sürekli olarak veri değiş tokuşu yapar: gradient'ler, aktivasyonlar, model parametreleri ve ara sonuçlar. Bu değiş tokuş yavaşsa GPU'lar bekler—ve boşta geçen GPU zamanı en pahalı olandır.
Ağ darboğazının iki yaygın belirtisi:
Bir sunucu içinde GPU'lar çok hızlı, düşük gecikmeli bağlantılarla birbirine bağlanabilir ki dolambaçsız koordinasyon sağlansın. Sunucular arasında ise veri merkezleri ağır yük altında tahmin edilebilir performans sağlayan yüksek bant genişliğine sahip ağ fabric'leri kullanır.
Kavramsal olarak iki katman düşünün:
Bu nedenle sadece "kaç GPU" sormak yetmez—GPU'ların nasıl konuştuğunu da sormanız gerekir.
GPU'lar "dosyalar" üzerine eğitim yapmaz; batch akışları üzerinde eğitim yapar. Veri yükleme yavaşsa hesaplama durur. Verimli boru hatları genelde şunları birleştirir:
İyi kurulmuş bir boru hattı, aynı GPU'ları dramatik şekilde daha hızlı hissettirebilir.
Gerçek ortamlarda birçok ekip aynı kümeyi paylaşır. Zamanlayıcı hangi işlerin GPU alacağına, ne kadar süre alacağına ve hangi kaynaklarla çalışacağına karar verir (CPU, bellek, ağ). İyi bir zamanlama "GPU açlığı"nı (işlerin beklemesi) ve "GPU israfı"nı (tahsis edilmiş ama boşta) azaltır. Ayrıca öncelik kuyrukları, preemption ve doğru boyutlandırma gibi politikaları da mümkün kılar—GPU saatlerinin bütçe kalemi olduğu durumlarda kritik önem taşır.
Donanım hikayenin yarısıdır. NVIDIA'nın gerçek avantajı GPU'yu hızlı bir çipten ekiplerin inşa edip konuşlandırabileceği ve bakımını yapabileceği bir platforma dönüştüren yazılım yığındadır.
Çoğu ekip ham GPU kodu yazmaz. Uygulamaları yapı taşlarından, optimize kütüphanelerden ve SDK'lardan bir araya getirirler: matris matematiği, konvolüsyonlar, video işleme, veri taşıma gibi ortak ve pahalı işlemler. Bunları LEGO parçaları gibi düşünün—alttaki düşük seviye kernel'leri yeniden icat etmek yerine ürün mantığına odaklanabilirsiniz.
Popüler ML framework'leri (eğitim ve çıkarım için) NVIDIA yığını ile entegre olur; böylece bir modeli GPU'da çalıştırdığınızda framework kritik işlemleri alttaki hızlandırılmış kütüphanelere yönlendirir. Kullanıcı perspektifinden bu basit bir cihaz seçimi gibi görünebilir ("GPU kullan"), ama o seçimin arkasında framework, CUDA runtime ve performans kütüphaneleri zinciri vardır.
Asgari olarak yönettiğiniz şeyler:
Burada birçok proje tökezler. Sürücüler, CUDA sürümleri ve framework sürümleri uyumluluk kısıtlarına sahiptir; uyumsuzluklar yavaşlamaya veya başarısız dağıtımlara yol açabilir. Pek çok ekip "bilinen iyi" kombinasyonlar üzerinde standartlaşır, sürümleri container içinde sabitler ve güncellemeleri aşamalı olarak dağıtır (dev → staging → prod). GPU yazılım yığınını tek seferlik bir kurulum değil, bir ürün bağımlılığı olarak görün.
Bir modeli tek bir GPU'da çalıştırdıktan sonra bir sonraki soru nasıl daha hızlı hale getirileceği (veya daha büyük bir modelin nasıl sığdırılacağıdır). İki ana yol vardır: scale up (aynı makinede daha çok/daha iyi GPU) ve scale out (birçok makinenin birlikte çalışması).
Bir GPU ile her şey yereldir: model, veri ve GPU belleği. Birden çok GPU ile cihazlar arasında işi koordine etmeye başlarsınız.
Scale up genelde 2–8 GPU'lu bir sunucuya geçmektir; bu büyük bir yükseltme olabilir çünkü GPU'lar sonuçları hızlıca paylaşabilir ve aynı host CPU/depoya erişebilir.
Scale out ise daha fazla sunucu ekleyip bunları hızlı ağla bağlamaktır. İşte o zaman eğitim koşuları onlarca veya binlerce GPU'ya ulaşır—ama koordinasyon birinci sınıf bir mesele haline gelir.
Veri paralel: her GPU modelin tam bir kopyasını tutar ama her GPU verinin farklı bir dilimini işler. Her adım sonunda GPU'lar gradient değiş tokuşu yaparak ağırlıklarda anlaşır. Başlamak için en yaygın yaklaşımdır çünkü mantığı basittir.
Model paralel: model kendisi GPU'lara bölünür çünkü tek bir GPU'ya sığmaz veya yavaş çalışır. Bu durumda GPU'lar ileri/geri geçişlerde konuşmak zorundadır; bu daha büyük modelleri mümkün kılar ama iletişimi artırır.
Birçok gerçek sistem her ikisini de kombine eder: sunucu içinde model paralel, sunucular arasında veri paralel.
Daha fazla GPU daha fazla "konuşma zamanı" getirir. İş küçükse veya ağ yavaşsa GPU'lar güncelleme bekler. Verim azalan getiriler gösterirken şunları görürsünüz:
Çok-GPU veya küme gerekebileceğini gösteren durumlar:
O noktada yığın sadece GPU'lardan ibaret değil; hızlı interconnect'ler, ağ ve zamanlama da kritik hale gelir—çünkü ölçekleme ham hesaplamadan çok koordinasyon işidir.
Hızlandırılmış hesaplama araştırma laboratuvarlarına mahsus bir hile değildir. Pek çok günlük ürünün anlık ve akıllı hissettirmesinin nedeni bazı iş yüklerinin paralel olarak binlerce küçük işlemi çok daha hızlı yapabilmesidir.
Çoğu kullanıcı sunum tarafını fark eder: sohbet asistanları, görüntü üreteçleri, gerçek zamanlı çeviri ve uygulama içindeki "akıllı" özellikler. Arkada GPU'lar iki aşamayı güçlendirir:
Üretimde bu daha hızlı yanıtlar, daha yüksek throughput (sunucu başına daha fazla kullanıcı) ve belirli bir veri merkezi bütçesi içinde daha büyük veya yetenekli modeller çalıştırabilme olarak görülür.
Streaming platformları ve video uygulamaları kodlama, çözücü, yükseltme, arka plan kaldırma ve efektler gibi görevler için hızlandırmadan yararlanır. Yaratıcı araçlar zaman çizelgesi oynatma, renk düzeltme, 3B render ve AI destekli özellikler (gürültü azaltma, üretken doldurma, stil transferi) için kullanır. Sonuç: düzenleme sırasında daha az bekleme ve daha fazla gerçek zamanlı geri bildirim.
Hızlandırılmış hesaplama, devasa ızgaralar veya çok sayıda parçacıktan tekrarlayan matematiğin olduğu simülasyonlarda yaygındır: iklim modelleri, hesaplamalı akışkanlar dinamiği, moleküler dinamik ve mühendislik tasarım doğrulaması. Daha kısa simülasyon döngüleri daha hızlı Ar-Ge, daha fazla tasarım iterasyonu ve daha iyi kalite anlamına gelebilir.
Öneriler, arama sıralaması, reklam optimizasyonu ve dolandırıcılık tespiti gibi uygulamalar genelde büyük olay akışlarını hızlı işlemesi gerekir. GPU'lar özellik işleme ve model çalıştırmanın bazı kısımlarını hızlandırarak kararların kullanıcı halen sayfadaysa verilebilmesini sağlar.
Her şey GPU'ya uygun değildir. İş yükünüz küçük, dallanma ağırlıklı veya ardışık mantıkla baskınsa CPU daha basit ve ucuz olabilir. Hızlandırılmış hesaplama, aynı anda çok sayıda benzer matematiği çalıştırabildiğinizde veya gecikme/throughput ürün deneyimini doğrudan etkilediğinde parladığı yerdir.
Pratik bir not: ekipler daha fazla AI özellikleri oluşturdukça darboğaz genelde artık "CUDA yazabilir miyiz?" değil, "uygulamayı teslim edip güvenle iterasyon yapabilir miyiz?" haline gelir. Bu noktada Koder.ai gibi platformlar yararlı olabilir: sohbet tabanlı bir iş akışıyla web/arka uç/mobil uygulama prototipleyebilir, ardından ihtiyaç duyduğunuzda arkada GPU destekli inference servislerini entegre edebilirsiniz—tüm teslim hattınızı yeniden inşa etmeden.
Bir AI için "bir GPU" almak aslında küçük bir platform almak demektir: hesaplama, bellek, ağ, depolama, güç, soğutma ve yazılım desteği. Başlangıçta biraz yapılandırma, modeller büyüdüğünde veya kullanım arttığında canınızı yakacak sürprizlerden kurtarır.
12–18 ay içinde en sık çalıştıracağınız işleri belirleyin—eğitim, ince ayar veya çıkarım—ve beklenen model boyutlarını tahmin edin.
Güçlü bir GPU yanlış bir kutuda yine de verimsiz çalışabilir. Gizli maliyetler:
Hibrit yaklaşım yaygındır: temel kapasite on‑prem, yoğun eğitim koşuları için buluta taşma.
Satıcılara veya dahili platform ekibine sorun:
Cevapları bir ürün parçası gibi değerlendirin: kâğıt üzerindeki en iyi GPU, eğer onu güçlendiremiyor, soğutamıyor veya veriyi sağlayamıyorsanız en iyi platform olmayabilir.
Hızlandırılmış hesaplama büyük fayda sağlar ama "bedava performans" değildir. GPU'lar, yazılım ve operasyonlar etrafında yaptığınız seçimler uzun süreli kısıtlar yaratabilir—özellikle bir ekip bir yığında standardize olduğunda.
CUDA ve NVIDIA kütüphane ekosistemi ekipleri hızlı üretken hale getirebilir, ama aynı kolaylık taşınabilirliği azaltabilir. CUDA'ya bağımlı kernel'ler veya özel bellek yönetimi desenleri içeren kodu başka hızlandırıcılara taşımak ciddi yeniden çalışma gerektirebilir.
Pratik yaklaşım: "iş mantığını" ve "hızlandırıcı mantığını" ayırın—model kodu, veri ön işleme ve orkestrasyonu taşınabilir tutun; özel GPU kernel'leri temiz bir arayüzle izole edin. Taşınabilirlik önemliyse, kritik iş yüklerinizi erken aşamada en az bir alternatif yolda doğrulayın (yavaş olsa bile) böylece geçiş maliyetini anlayın.
GPU tedariki dalgalı olabilir ve fiyatlar talebe göre değişir. Toplam maliyet sadece donanım değildir: güç, soğutma, raf alanı ve personel zamanı baskın olabilir.
Enerji birinci sınıf bir kısıttır. Daha hızlı eğitim harika ama eğer bu güç tüketimini ikiye katlayıp sonuç süresini düzeltemiyorsa daha pahalıya mal olabilir. Eğitim başına maliyet, token başına joule ve kullanım oranı gibi metrikleri takip edin—sadece "GPU saatleri" değil.
Birden fazla ekip GPU'ları paylaştığında temel hijyen önemlidir: güçlü tenant sınırları, denetlenen erişim, yamalanmış sürücüler ve model ağırlıkları ile veri setlerinin dikkatli yönetimi. Platformunuzun desteklediği izolasyon araçlarını (container/VM, iş başına kimlik bilgileri, ağ segmentasyonu) tercih edin ve GPU düğümlerini yüksek değerli varlıklar gibi yönetin.
Üç alanda ilerleme bekleyin: daha iyi verimlilik (watt başına performans), GPU'lar ve düğümler arasında daha hızlı ağ bağlantıları ve operasyonel sürtünmeyi azaltan daha olgun yazılım katmanları (profiling, zamanlama, tekrarlanabilirlik ve daha güvenli çok-tenant paylaşım).
Hızlandırılmış hesaplamayı benimsiyorsanız, bir veya iki temsilci iş yüküyle başlayın, uçtan uca maliyet ve gecikmeyi ölçün ve taşınabilirlik varsayımlarını belgeleyin. Sonra küçük bir "altın yol" oluşturun (standart imajlar, sürücüler, izleme ve erişim kontrolleri) ve ekip sayısı arttıkça bunu çoğaltın.
İlgili planlama için bkz. /blog/choosing-gpus-and-platforms ve /blog/scaling-up-and-scaling-out.
Hızlandırılmış hesaplama, "ağır, tekrarlayan matematik" işlemlerini genel amaçlı bir CPU'ya yüklemek yerine özel bir işlemciye (çoğunlukla GPU) vermek anlamına gelir.
Pratikte CPU uygulamayı ve veri akışını koordine ederken, GPU milyonlarca benzer işlemi paralel olarak yürütür (ör. matris çarpımları).
CPU'lar kontrol akışı için optimize edilmiştir: çok sayıda dallanma, görev değiştirme ve işletim sisteminin çalıştırılması gibi işler.
GPU'lar ise verinin büyük parçalarına aynı işlemi uygulamak için optimize edilmiştir. Pek çok yapay zeka, video ve simülasyon işi bu veri-paralel modele iyi uyduğu için GPU'lar bu görevlerde çok daha hızlı olabilir.
Hayır—çoğu gerçek sistem her ikisini birlikte kullanır.
Eğer CPU, depolama veya ağ GPU'yu besleyemezse, GPU boşta kalır ve beklenen hız artışı elde edilemez.
Genellikle üç katmandan oluşan bir bileşim kastedilir:
CUDA, geliştiricilerin NVIDIA GPU'larında genel amaçlı hesaplama yapmasını sağlayan yazılım platformudur.
Kernels/threads modelini, derleyici zincirini, runtime'ı ve sürücüleri içerir; ayrıca birçok ortak işlem için geniş bir kütüphane ekosistemine sahiptir—bu yüzden çoğu zaman ham CUDA yazmanız gerekmez.
Bir kernel, aynı anda birçok kez çalıştırılmak üzere yazılmış bir fonksiyondur.
Bunu CPU'daki gibi bir kez çağırmak yerine binlerce veya milyonlarca hafif thread üzerinde başlatırsınız; her thread işin küçük bir parçasını (bir eleman, bir piksel, bir satır vb.) işler. GPU bu thread'leri çekirdekleri arasında zamanlayarak verimi maksimize eder.
Çünkü pahalı olan işler çoğunlukla tensör matematiğine—özellikle matris çarpımı ve konvolüsyon gibi yoğun çarpma-toplama desenlerine—indirgenir.
GPU'lar çok sayıda benzer aritmetik işlemi eşzamanlı çalıştırmak için tasarlanmıştır ve modern GPU'lar bu tensör-ağırlıklı desenleri watt başına daha yüksek verimle işlemek için özel birimler içerir.
Training (eğitim) genelde toplam hesaplama ve büyük tensörlerin bellekte defalarca taşınması ile sınırlıdır (dağıtık çalışmada iletişim de önem kazanır).
Inference (çıkarım) genelde gecikme hedefleri, throughput ve veri hareketi ile sınırlıdır—GPU'yu sürekli meşgul ederken yanıt sürelerini korumak gerekir. Bu iki durum arasında batchleme, kuantizasyon ve boru hattı optimizasyonları farklılık gösterir.
Çünkü VRAM GPU üzerinde aynı anda neler tutulabileceğini belirler: model ağırlıkları, aktivasyonlar ve batch verisi.
VRAM yetmediğinde tipik çözümler:
Birçok proje "ham hesaplama" sınırına gelmeden önce bellek sınırlarına takılır.
GPU alırken yalnızca tepe performans değerlerine bakmamak, tam platformu değerlendirmek önemlidir:
Yapılandırma kararlarını verirken bu maddeleri kontrol etmek faydalıdır.