GPU-CFR: Oyun Ağaçlarını Statik Veri Akışına Derleyerek Kernel Başlatma Maliyetini Azaltmak
1. Abstract & Executive Summary
GPU-CFR, sabit iki kişilik sıfır toplamlı oyunların ağaç yapısını derleme aşamasında düz dizilere ve önceden hesaplanmış indekslere dönüştürerek çalışma zamanındaki dinamik kontrol akışını ortadan kaldırır. Bu statik veri akışı yaklaşımı, CUDA Graph Replay ile tek bir grafik başlatma komutuyla tüm iterasyonları yürütmeye olanak tanır; böylece milyonlarca küçük kernel'in bireysel başlatma ve framework dağıtım maliyetleri eleme edilir. Yazar ölçümüne göre, tek bir A100 GPU üzerinde sekiz farklı oyundan oluşan test setinde, eşleşen en hızlı mevcut GPU CFR uygulamasına kıyasla 29.8–80.4 kat (medyan 44.1 kat) hızlanma elde edilmiştir GPU-CFR arXiv. Bu kazanımın önemli bir kısmı, CUDA Graphs'tan bağımsız olarak derlenmiş temsilin kendisinden kaynaklanır; yalnızca 8 CPU iş parçacığında çalışan derlenmiş çözüm, GPU baz çizgisine göre 2.2–51.1 kat daha hızlı çalışır GPU-CFR arXiv. Mekanizma, oyun topolojisinin ve tensör şekillerinin sabit kaldığı senaryolara özgüdür; dinamik yapılar veya farklı donanımlara genelleme iddiası bulunmamaktadır GPU-CFR arXiv. Doğrulama, CUDA yolunda atol=1e-9 toleransı kullanırken, CPU yolunda bire bir eşitlik gerektirmektedir GPU-CFR GitHub.
2. Tarihsel Arka Plan ve Problem Tanımı
Geleneksel GPU tabanlı CFR uygulamaları, oyun ağacındaki her bir bilgi seti ve eylem için ayrı kernel çağrıları yapar. Ağaç derinliği arttıkça, bu küçük bağımlı işlemlerin sayısı milyonlara ulaşır. Ancak modern GPU'larda tek bir kernel'in çalışma süresi mikrosaniye mertebesindeyken, kernel başlatma ve framework dağıtım gecikmesi (dispatch overhead) makro saniyelere kadar çıkabilir. Bu asenkron darboğaz nedeniyle, optimize edilmiş CPU kodlarına kıyasla GPU implementasyonlarının beklenen hızlanmayı sağlayamaması veya daha yavaş çalışması gözlemlenmiştir GPU-CFR arXiv.
Bu durumun temel nedeni, çalışma zamanında dinamik olarak belirlenen kontrol akışıdır. Standart yaklaşımlarda, her iterasyonda hangi kernelin ne zaman ve hangi parametrelerle çalışacağı CPU tarafından hesaplanır ve GPU'ya gönderilir. Bu süreçte oluşan kuyruk bekleme süreleri, GPU'nun yüksek paralel işleme kapasitesini boşa harcar. Sorun, oyunun matematiksel yapısı (topoloji, bilgi setleri, şans düğümleri) sabit kalırken, yalnızca strateji ve pişmanlık değerlerinin değişmesidir GPU-CFR arXiv.
Bu tarihsel kısıt, kontrol akışını sayısal hesaplama döngüsünden ayırma ihtiyacını doğurur. Eğer operasyon sırası önceden biliniyorsa, GPU'nun grafik replasman (graph replay) mekanizmaları kullanılabilir. Bu yaklaşım, tekrarlanan kernel dizilerini tek bir nesne olarak kaydeder ve yeniden oynatır. Böylece framework dağıtım maliyeti, iterasyon başına düşen toplam sürenin baskın bileşeni olmaktan çıkar GPU-CFR arXiv. Bu mekanizma, GPU-CFR'nin derleme aşamasında oyun yapısını statik veri akışına dönüştürme kararının temel gerekçesini oluşturur.
3. Matematiksel ve Teorik Temeller
GPU-CFR'nin performans kazanımı, iki katmandan oluşur: statik veri akışı temsilinin kendisi ve CUDA Graph Replay mekanizması. Derleme aşamasında oyun ağacı düz kenar dizileri ve önceden hesaplanmış indekslere dönüştürülür; bu sayede çalışma zamanındaki dinamik kontrol akışı sabit bir operasyon sırasına indirgenir. Yazar ölçümüne göre, yalnızca 8 CPU iş parçacığında çalışan derlenmiş temsil, GPU baz çizgisine kıyasla 2.2–51.1 kat daha hızlıdır; bu, kazanımın önemli kısmının CUDA Graphs'tan bağımsız olarak temsil değişikliğinden kaynaklandığını gösterir GPU-CFR arXiv.
CUDA Graph Replay katmanı ise framework dağıtım maliyetini ele alır. Tekrarlayan CFR iterasyonlarında operasyon sırası sabit kaldığından, kernel zinciri bir kez kaydedilip tek bir grafik başlatma komutuyla yeniden oynatılabilir. Bu yaklaşım, her iterasyonda CPU'nun milyonlarca küçük kernel'i sırayla GPU'ya göndermesi gereken dispatch döngüsünü atlayarak, çekirdek hesaplama sürelerinin (mikrosaniye mertebesinde) başlatma gecikmesine (makro saniye mertebesinde) oranını iyileştirir GPU-CFR arXiv.
Sayısal doğruluk açısından, CUDA-graph replay ile eager execution arasındaki farkın atol=1e-9 toleransı içinde kaldığı raporlanmıştır; bu, strateji ve pişmanlık toplamlarının tutarlılığını sağlar ancak bit-birebir eşitlik garantisi vermez GPU-CFR GitHub. Mekanizmanın geçerliliği, oyun topolojisinin, bilgi setlerinin ve tensör şekillerinin iterasyonlar boyunca sabit kalması varsayımına bağlıdır. Dinamik yapılar veya tablo dışı CFR varyantları için bu statik derleme yaklaşımı doğrudan uygulanamaz; ayrıca performans sonuçları yalnızca test edilen sekiz oyunlu A100 setiyle sınırlıdır ve farklı donanımlara genellenmesi için ek doğrulama gerektirir GPU-CFR arXiv.
4. Sistem Mimarisi ve Veri Akışı
GPU-CFR mimarisi, çalışma zamanı dinamikliğini derleme aşamasına taşıyarak iki temel yapısal dönüşüm uygular. İlk olarak, oyun ağacının topolojisi ve bilgi setleri düz kenar dizileri ile önceden hesaplanmış indekslere indirgenir. Bu statik temsil, her iterasyonda yalnızca strateji, pişmanlık (regret) ve erişim değerlerinin güncellenmesini gerektirir; operasyon sırası ise sabit kalır GPU-CFR arXiv. Bu yapısal karar, derlenmiş temsilin CUDA Graphs'tan bağımsız olarak bile 8 CPU iş parçacığında GPU baz çizgisine kıyasla 2.2–51.1 kat daha hızlı çalışmasını sağlar GPU-CFR arXiv.
İkinci katman, bu sabit operasyon zincirinin CUDA Graph Replay mekanizmasıyla yürütülmesidir. Sistem, CFR iterasyonundaki tüm kernel çağrılarını bir kez kaydeder ve ardından tek bir grafik başlatma komutuyla yeniden oynatır GPU-CFR arXiv. Bu yaklaşım, her kernel için ayrı ayrı yapılması gereken CPU tarafı framework dağıtım maliyetini ortadan kaldırır. Kod deposundaki iter_bench sürücüsü, bu iki modun (eager ve graph replay) kararlı durum iterasyon sürelerini karşılaştırmak için tasarlanmıştır GPU-CFR GitHub. Doğrulama testleri, CUDA-graph replay çıktılarının eager çalıştırma ile pişmanlık toplamları ve kök değerinde 1e-9 tolerans sınırlarında tutarlı olduğunu gösterir GPU-CFR GitHub.
Mimarinin kritik sınırı, sabit oyun topolojisine bağımlılığıdır. Derleme işlemi, ağaç yapısı, şans davranışı ve tensör şekillerinin iterasyonlar boyunca değişmediği varsayımına dayanır GPU-CFR arXiv. Dinamik oyun yapıları veya farklı tensor boyutlarına sahip senaryolar, bu statik veri akışı yaklaşımının doğrudan uygulanabilirliğini ortadan kaldırır. Ayrıca, bağımsız doğrulama süreçlerinde bazı baz çizgileri (örneğin NoRegret) eksik sürücü dosyaları nedeniyle paket üzerinden çalıştırılamamaktadır GPU-CFR GitHub.
5. Uygulama ve Referans Kod
GPU-CFR referans implementasyonu, derlenmiş oyun temsilini gpu_cfr/solvers/ altındaki CUDA-graph tabanlı aşamalı çözümleyici ve yaşam döngüsü API'si ile birleştirir. Modül yapısı, tensor düzeni, kenar tabloları ve toplama mantığını statik olarak tanımlarken, çalışma zamanında yalnızca reset(), set_payoffs() ve set_root_ranges() gibi durum güncelleyici fonksiyonlar çağrılır GPU-CFR GitHub. Bu yapı, CUDA Graph Replay'in gerektirdiği sabit operasyon sırasını doğrudan destekler; kernel zinciri bir kez kaydedildikten sonra, her iterasyonda tek bir grafik başlatma komutuyla yürütülür. Depoda yer alan iter_bench sürücüsü, steady-state iterasyon sürelerini eager (açık) çalıştırma ve CUDA-graph replay modları arasında karşılaştırmak için tasarlanmıştır; bu araç, framework dağıtım maliyetinin izole edilerek ölçülmesine olanak tanır GPU-CFR GitHub.
Doğrulama süreci, sayısal tutarlılığı garanti altına almak için iki farklı eşik kullanır. CPU yolunda bit-bir (bitwise) eşitlik kontrolü uygulanırken, CUDA yolu için atol=1e-9 toleransı kabul edilir; bu fark, GPU kayan nokta aritmetiğindeki beklenen küçük sapmaları yansıtır GPU-CFR GitHub. Yazar ölçümüne göre, CUDA-graph replay sonuçları pişmanlık toplamları, strateji toplamları ve kök değerinde eager çalıştırmayla bu tolerans sınırları içinde örtüşmektedir GPU-CFR GitHub. Bağımsız doğrulama açısından önemli bir sınırlama olarak, NoRegret baz çizgisi dış sürücü dosyalarının eksikliği ve ABI uyumsuzlukları nedeniyle paketten doğrudan çalıştırılamamaktadır; bu durum, belirli karşılaştırmaların yeniden üretimini kısıtlar GPU-CFR GitHub. LiteEFG ise EFG girdisini destekleyerek kısmi bir alternatif doğrulama yolu sunar. Kod yapısının statik veri akışı ile CUDA Graphs'ı entegre ettiği, ancak performans metriklerinin yalnızca yazarın raporladığı ölçümlere dayandığı not edilmelidir.
6. Empirik Analiz ve Benchmark Karşılaştırmaları
GPU-CFR'nin performans iddiaları, tek bir NVIDIA A100 GPU üzerinde sekiz farklı oyundan oluşan (kart, zar ve tahta oyunları) standart bir test setinde ölçülmüştür. Yazar ölçümüne göre, sistem eşleşen en hızlı mevcut GPU CFR uygulamasına kıyasla 29.8–80.4 kat (medyan 44.1 kat) daha hızlı çalışmaktadır GPU-CFR arXiv. Bu hızlanmanın kaynağını anlamak için kazanım iki bileşene ayrıştırılmalıdır: statik veri akışı temsili ve CUDA Graph Replay mekanizması.
Önemli bir mühendislik çıkarımı, derlenmiş temsilin kendisinin bağımsız bir performans kazancı sağladığıdır. Yazar ölçümüne göre, yalnızca 8 CPU iş parçacığında çalışan ve hiçbir hızlandırıcı kullanmayan derlenmiş çözüm, GPU baz çizgisine kıyasla 2.2–51.1 kat daha hızlıdır GPU-CFR arXiv. Bu sonuç, toplam hızlanmanın büyük kısmının CUDA Graphs'tan bağımsız olarak, dinamik kontrol akışının statik dizilere indirgenmesinden kaynaklandığını gösterir. CUDA Graph Replay katmanı ise framework dağıtım maliyetini ele alarak bu taban kazanımına ek bir iyileştirme sağlar.
Doğruluk açısından, CUDA-graph replay çalıştırması eager (açık) çalıştırmayla tutarlıdır; pişmanlık toplamları ve strateji değerleri 1e-9 tolerans sınırı içinde eşleşmektedir GPU-CFR GitHub. Ancak bağımsız doğrulama sınırlıdır: NoRegret baz çizgisi, eksik sürücü dosyaları nedeniyle paket üzerinden çalıştırılamamaktadır GPU-CFR GitHub. Sonuçlar yalnızca test edilen sekiz oyunda ve tek A100 donanımında geçerlidir; farklı oyun yapıları veya donanımlara genelleştirilemez.
7. Kısıtlamalar, Çıkmazlar ve Mühendislik Ödünleşimleri
GPU-CFR yaklaşımının geçerliliği, oyun yapısının çalışma zamanında değişmemesi koşuluna sıkı sıkıya bağlıdır. Sistem; ağaç topolojisi, bilgi setleri, şans davranışları ve tensor boyutlarının sabit kaldığı senaryolar için tasarlanmıştır. Bu varsayım altında yalnızca strateji, erişim (reach) ve pişmanlık (regret) değerleri iterasyonlar arasında değişir; operasyon sırası ise derleme aşamasında dondurulur GPU-CFR arXiv. Dinamik oyun yapıları veya tablo dışı (non-tabular) CFR varyantları, bu statik veri akışı varsayımını ihlal ettiği için mevcut mimari doğrudan uygulanamaz; ek adaptasyon gerektirir.
Performans ölçümleri de belirli donanım ve ölçek sınırlarına sahiptir. Raporlanan 29.8–80.4 katlık hızlanma, tek bir NVIDIA A100 GPU üzerinde ve test edilen sekiz oyundan oluşan spesifik bir set için geçerlidir GPU-CFR arXiv. Bu sonuçların farklı GPU mimarilerine, çok daha büyük veya küçük oyun ağaçlarına veya alternatif çözümleyici yapılandırmalarına genellenmesi kaynaklarda desteklenmemektedir.
Doğrulama sürecindeki mühendislik ödünleşimleri de dikkat çekicidir. CPU implementasyonu, referans iterasyonlarla birebir (bitwise) eşitlik kontrolü için zorunlu tutulurken, CUDA karşılaştırmalarında atol=1e-9 toleransı kabul edilmiştir GPU-CFR GitHub. Bu durum, GPU yolunun sayısal kesinlik garantisi açısından CPU yolundan farklı bir doğrulama standardına tabi olduğunu gösterir. Ayrıca, bağımsız validasyon için kritik olan NoRegret baz çizgisi, paket içinde eksik sürücü dosyaları ve ABI uyumsuzlukları nedeniyle çalıştırılamamaktadır; bu durum bazı karşılaştırmaların tam olarak yeniden üretilmesini engeller GPU-CFR GitHub. Sonuç olarak, GPU-CFR'nin kazancı, statik yapı varsayımı ve belirli donanım koşulları altında geçerli olan, sınırları net çizilmiş bir mühendislik çözümüdür.
8. Gelecek Projeksiyonu ve Açık Sorunlar
GPU-CFR'nin mevcut mimarisi, statik oyun topolojisi varsayımına sıkı sıkıya bağlıdır. Ağaç yapısı, bilgi setleri ve tensor boyutları çalışma zamanında değiştiğinde, derlenmiş veri akışı geçersiz hale gelir; bu durum dinamik oyun senaryolarında veya tablo dışı (non-tabular) CFR varyantlarında doğrudan uygulanabilirliği sınırlar GPU-CFR arXiv. Bu yapısal kısıt, sistemin genişletilebilirlik potansiyelini belirleyen temel faktördür.
Ölçüm sonuçlarının genellenmesi de dikkatli yorum gerektirir. Raporlanan 29.8–80.4 katlık hızlanma, yalnızca tek bir NVIDIA A100 GPU üzerinde ve sekiz oyundan oluşan spesifik bir test setinde elde edilmiştir GPU-CFR arXiv. Farklı donanım mimarileri, çok daha büyük oyun ölçekleri veya alternatif çözümleyici yapılandırmaları için bu kazanımın korunup korunmayacağı henüz doğrulanmamıştır. Ayrıca, bağımsız doğrulama süreci bazı teknik engellerle karşı karşıyadır; örneğin NoRegret baz çizgisi, eksik sürücü dosyaları ve ABI uyumsuzlukları nedeniyle mevcut paket üzerinden çalıştırılamamaktadır GPU-CFR GitHub.
Gelecekteki çalışmaların odaklanması gereken kritik alanlar şunlardır:
- Dinamik Topoloji Desteği: Oyun yapısının çalışma zamanında değişebildiği senaryolar için yeniden derleme maliyetini minimize edecek hibrit mekanizmalar geliştirilmelidir.
- Donanım Genellenmesi: Farklı GPU nesilleri ve çoklu GPU kurulumlarında CUDA Graph Replay'in verimliliğinin incelenmesi gerekmektedir.
- Doğrulama Standartları: CPU tarafındaki bit-bit eşitlik kontrolü ile GPU tarafındaki tolerans tabanlı (atol=1e-9) doğrulama arasındaki fark, bağımsız tekrarlanabilirlik açısından netleştirilmelidir GPU-CFR GitHub.
Bu sınırlar, GPU-CFR'nin mevcut başarısının belirli bir mühendislik ödünleşimi sonucu olduğunu gösterir. Statik derlemenin sağladığı hızlanma, esneklikten vazgeçilerek elde edilmiştir; dolayısıyla daha geniş oyun alanlarına yayılım, mimari düzeyde yeni adaptasyonlar gerektirecektir.
9. Referanslar ve İleri Okuma
-
GPU-CFR: 80x Faster Counterfactual Regret Minimization by Compiling the Game to Static Dataflow and CUDA Graph Replay — Original research proposing GPU-CFR, a compiler that transforms fixed game structures into static dataflow graphs for CUDA Graph Replay to eliminate kernel launch overhead in CFR iterations. Tarih: 2026-09-10; sürüm: v1.
-
GPU-CFR: 80x Faster Counterfactual Regret Minimization by Compiling the Game to Static Dataflow and CUDA Graph Replay — Official code repository for the paper proposing GPU-accelerated CFR via static dataflow compilation and CUDA Graph replay. Tarih: 2026; sürüm: bilinmiyor.