Trace Görüntüleme Aracı

Profil oluşturma oturumu sırasında gerçekleşen etkinliklerin zaman çizelgesini görselleştirmek için İzleme Görüntüleyici'yi kullanabilirsiniz. Bu boyut, modelinizin ana makine (CPU) ve hızlandırıcılar (GPU'lar veya TPU'lar) gibi sistemin farklı bölümlerinde yürüttüğü işlemlerin sürelerini gösterir. Bu sayede, modelinizin donanım kaynaklarını nasıl kullandığını anlayabilir, performans sorunlarını tespit edebilir ve modelinizi daha hızlı çalıştıracak şekilde optimize edebilirsiniz. İzleyici kullanıcı arayüzü, chrome://tracing'te kullanılan kullanıcı arayüzüne dayanır ve bu nedenle Chrome Tarayıcı'yı kullanmanız gerekir.

Desteklenen Platformlar

TPU: desteklenir

GPU: desteklenir

GPU'lar için izleme görüntüleyici, etkinlikleri GPU çipi ve içindeki akışlar başına zaman çizelgelerinde gruplandırır. TPU'lar için ise etkinlikleri TPU çipi ve çekirdek başına zaman çizelgelerinde düzenler. Her iki durumda da, İzleyici, hızlandırıcıların bağlı olduğu ana CPU için zaman çizelgelerinde iş parçacığı başına etkinlikler de sunar.

Zaman çizelgesiyle etkileşim

İzleme Görüntüleyici, zaman çizelgesinde gezinmek ve zaman çizelgesini incelemek için çeşitli araçlar ve yöntemler sunar:

  • Gezinme: Aşağıdaki klavye kısayollarını kullanabilirsiniz:
    • W: Yakınlaştırır.
    • S: Uzaklaştır.
    • Y: Sola kaydırın.
    • D: Sağa kaydırın.
  • Araç seçici: Araç seçicide bir aracı tıklayabilir veya ilgili klavye kısayolunu kullanabilirsiniz:
    • Seçim Aracı (1 veya !): Bir etkinliği tıklayarak seçin ve ayrıntılarını Ayrıntılar bölmesinde görüntüleyin. Özet görmek için Ctrl + tıklama ile birden fazla etkinlik seçin.
    • Kaydırma Aracı (2 veya @): Zaman çizelgesini yatay veya dikey olarak hareket ettirmek için sürükleyin.
    • Yakınlaştırma Aracı (3 veya #): Zaman çizelgesinin belirli bir alanını yakınlaştırmak için sürükleyin.
    • Zamanlama Aracı (4 veya $): Bir zaman aralığını işaretlemek için sürükleyin. İşaretlenen aralığın süresi gösterilir. Bir seçimi işaretlemek ve toplam süresini belirlemek için "m" tuşunu da kullanabilirsiniz.
  • Seçilen etkinliklere yakınlaştırma (f): Bir veya daha fazla etkinlik seçin ve zaman çizelgesinin bu bölümünü hızlıca yakınlaştırmak için "f" tuşuna basın. Bu, belirli bir eğitim adımına odaklanmak için yararlıdır.

İzleyici, çok sayıda izleme etkinliğiyle çalışırken akış modunda çalışır. Yani, zaman çizelgesinde kaydırıp yakınlaştırdıkça verileri isteğe bağlı olarak yükler. Bu, harita uygulamalarının işleyişine benzer. Veriler yüklenirken daha hızlı yakınlaştırırsanız yükleme işlemi tamamlanana kadar verilerin düşük çözünürlüklü bir temsilini görebilirsiniz.

Trace Viewer Arayüz Bileşenleri

Trace Görüntüleyici'deki ana kullanıcı arayüzü bileşenleri şunlardır:

  • Zaman ekseni, en üstte yatay olarak çalışır ve izlemenin başlangıcına göre zamanı gösterir.
  • Zaman çizelgeleri, bölümlere ve parçalara göre düzenlenir ve etiketler sol dikey eksende yer alır. Her bölüm bir işleme öğesini (ör. cihaz düğümü veya ana makine iş parçacıkları) temsil eder ve genişletilebilir veya daraltılabilir. Her bölümde, belirli etkinliklerin zaman çizelgeleri olan parçalar bulunur.
  • Etkinlikler, zaman çizelgesi kanallarındaki renkli, dikdörtgen bloklardır. Bir işlemin veya eğitim adımı gibi bir meta etkinliğin süresini temsil eder. Etkinliklerin renginin belirli bir anlamı yoktur.
  • Ayrıntılar bölmesinde, zaman çizelgesi bölmesinde seçilen etkinliklerle ilgili ek bilgiler (ör. ad, başlangıç zamanı ve süre) gösterilir.

Tipik Bölümler ve Parçalar

İzleyici, aşağıdaki bölümleri ve kanalları sağlar.

  • Her TPU düğümü için aşağıdaki kanalları içeren bir bölüm:
    • XLA Modülü: Çalıştırılan XLA programı.
    • XLA İşlemleri: TPU çekirdeğinde çalıştırılan XLA HLO işlemlerini gösterir. Her üst düzey çerçeve işlemi (ör. JAX, Tensorflow veya PyTorch), bir veya daha fazla XLA işlemine çevrilir ve daha sonra TPU'da çalışacak şekilde derlenir. Bir XLA işlemini tıkladığınızda, işlemle ilgili başlangıç/bitiş zamanları, süre ve kaynak yığın izleme (çerçeve ve derleyici tarafından sağlanırsa) gibi ek bilgilerle birlikte işlem bağlantılarını Grafik Görüntüleyici'de görebilirsiniz.
    • XLA TraceMe: Kullanıcının, izlemek istediği mantıksal iş birimlerini açıklayan kodunda belirttiği ek açıklamalar. Not eklememiş olsanız bile burada veriler görebilirsiniz. Bu veriler genellikle XLA (ör. bariyer çekirdekleri) veya XProf tarafından (ör. bırakılan izleme girişleri) eklenir.
    • Adım: Kullanıcı programında veya çerçevesinde uygun şekilde ek açıklama eklenmişse söz konusu TPU çekirdeğinde çalışan eğitim adımlarının süresini gösterir.
    • Çerçeve İşlemleri: Kullanıcı programında veya çerçevesinde uygun şekilde ek açıklama eklenmişse TPU çekirdeğinde yürütülen çerçeve işlemlerini (ör. JAX, Tensorflow veya PyTorch) gösterir.
    • Çerçeve Adı Kapsamı: Her çerçeve işlemi için yığın izlemenin görselleştirmesi. Özetlemek amacıyla bu kanal yalnızca tek bir cihaz için gösterilir.
    • Kaynak kod: Profilde mevcutsa yürütülen kaynak kodun yolu.
    • Skaler birim: TPU'lar için skaler biriminde yürütülen etkinlikler (profilde varsa gösterilir).
    • TensorCore Senkronizasyon İşaretleri: TPU'lardaki senkronizasyon mekanizması. Profilde varsa gösterilir.
    • Ana makineden aktarma: Ana makine belleği ile hızlandırıcı belleği arasında verileri eşzamansız olarak taşıyan işlemler. Genellikle XLA İşlemleri satırında, hızlandırıcının veri aktarımına hazırlandığını belirten karşılık gelen başlatma ve durdurma işlemleri bulunur (ör. aktarım süresi boyunca kaynak/hedef bellek bölgelerini "kullanımda" olarak işaretleme). Paralel olarak yürütülen birden fazla boşaltma işlemi varsa birden fazla ana makineden boşaltma satırı olabilir. Bu durumda, izleme görüntüleyicinin aynı anda birden fazla etkinliği göstermesi gerekir.
  • Her Sparsecore düğümü için bir bölüm: Bazı TPU nesilleri (ör. TPU v5p ve TPU v6e), yoğun bilgi işlem MXU birimlerine ek olarak bir veya daha fazla SparseCore birimi ile donatılmıştır. Bu çekirdeklerle ilişkili modüller, işlemler ve TraceMes bu bölümde gösterilir.
  • Her GPU düğümü için aşağıdaki kanalları içeren bir bölüm:
    • XLA Modülleri, Çerçeve İşlemleri, Çerçeve Adı Kapsamı, Adımlar, Kaynak kod. Bunların tümü TPU bölümlerine benzer.
    • Akış adı, akışta yürütülen işlem türleri (Memcpy, Compute vb.) hakkında bilgi de içeren akış başına bir kanal.
    • XLA TraceMe, GPU'larda desteklenmez.
    • XLA işlemleri GPU bölümlerinde görünür ancak akış verilerinden türetildiği için şu anda her zaman doğru değildir. Bu nedenle, XLA işlemlerinin farklı akışlarda çalıştırılan gerçek çekirdeklerle N:M eşlemesi ve birden fazla akışın donanımdaki farklı SM'lere dinamik olarak planlanması gibi durumların olabileceği GPU'nun yürütme modelini tam olarak hesaba katmazlar.
  • Ana makinenin CPU'sunda çalışan her bileşen (ör. bir iş parçacığı havuzu) için bir bölüm ve iş parçacığı havuzları söz konusu olduğunda iş parçası başına bir kanal. Profil toplama sırasında etkinleştirildiyse Python izlerini de burada görürsünüz.

Yalnızca TPU'lar için XLA İşlemleri ve GPU'lar için akış verilerinin doğrudan toplanan profile dayalı olduğunu, diğer tüm satırların ise derleyici tarafından sağlanan isteğe bağlı "yan bant" bilgilerini, isteğe bağlı kullanıcı ek açıklamalarını ve/veya XProf tarafından uygulanan sezgisel kuralları içeren "türetilmiş satırlar" olduğunu unutmayın. Bu nedenle, bu türetilmiş satırlar belirli profillerde görünebilir veya görünmeyebilir.

Diğer özellikler

  • "Etkinlik bul" arama çubuğunu kullanarak belirli etkinlik adlarını arayabilirsiniz. Şu anda bu özellik, yalnızca izlemenin tamamı yerine ekrandaki görünür zaman aralığında arama yapar.
  • Akış Etkinlikleri: Üst çubuktaki "Akış Etkinlikleri" düğmesini tıklayarak bu seçeneği etkinleştirmek, bir ileti dizisindeki veya satırdaki etkinlikleri başka bir ileti dizisi satırındaki etkinliklere bağlayarak görselleştirmeler ekler. Örneğin, ana makinede bir hızlandırıcı için işi sıraya ekleyen veya başlatan işlevden, hızlandırıcıda bu işi yürüten işleve bir ok çizilebilir. XProf, bu bağlantıları kullanıcı ek açıklamaları, yerleşik sezgisel kurallar ve farklı bileşenlerden (ör. CUPTI sürücüleri, çekirdek başlatma kimlikleri, TPU çalışma zamanı bilgileri vb.)
  • Bir XLA işlemini tıkladığınızda ayrıntılar bölmesinde ek bilgiler gösterilir. Örneğin, Grafik Görüntüleyici aracındaki işleme bağlantı verir. Ayrıca kaynak koda ve/veya Python yığın izlemeye, bu XLA işleminin oluşturulmasına neden olan çerçeve işlemine vb. (profilde varsa) işaretçiler de sağlayabilir. Ayrıca FLOPS'u (işlem tarafından yürütülen kayan nokta işlemi sayısı) ve işlem tarafından erişilen baytları da gösterebilir. Bu bilgiler, profildeki çalışma zamanı bilgileri yerine derleme sırasında XLA'dan statik olarak alınır.