yoklateknik mülakat

ML Engineer Ti Throughput Profiling Bottlenecks Mülakat Soruları

75 doğrulanmış ML Engineer Ti Throughput Profiling Bottlenecks mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Ti Throughput Profiling BottlenecksZorluk 2
Bir profiler tek bir eğitim adımını (birçok adımın ortalaması) fazlara ayırıyor:
input_wait   : 2 ms
forward      : 18 ms
backward     : 34 ms
collective    : 6 ms
optimizer    : 4 ms
-------------------
step total   : 64 ms

İlk optimizasyon denemesi için en iyi hedef hangi faz?
  • ainput_wait, çünkü sıfırdan farklı her bekleme pipeline'ın GPU'yu aç bıraktığı anlamına gelir
  • bcollective, çünkü rank'lar arası iletişim senkron bir adımda gizli maliyete genelde hâkim olur
  • cbackward, çünkü açık ara en büyük faz
  • doptimizer, çünkü 4 ms'lik payı saf yükten ibarettir ve yük gerçek hesaptan önce silinmelidir
Açıklama:backward (34 ms) adımın yarısından fazlasını oluşturuyor ve diğer tüm fazların toplamından bile büyük; oradaki sabit yüzdelik bir iyileştirme en büyük mutlak zaman kazancını verir. input_wait yalnızca 2 ms (darboğaz değil), collective burada mütevazı 6 ms, optimizer'ın 4 ms'i ise normal, 'saf yük' değil.
Ti Throughput Profiling BottlenecksZorluk 1
Adım başına zaman dökümünde (girdi bekleme, forward, backward, collective, optimizer, host yükü) hangi faz, sürecin bir sonraki batch hazır olana kadar durup beklediği süreyi temsil eder?
  • agirdi bekleme (input wait)
  • bforward
  • ccollective
  • dhost yükü
Açıklama:input wait, eğitim döngüsünün veri hattının bir sonraki batch'i teslim etmesini beklerken bloke olduğu süre olarak tanımlanır. Forward ve collective aktif hesap/iletişim fazlarıdır, host yükü ise CPU tarafındaki çağrı-dağıtım maliyetini ifade eder, veri beklemeyi değil.
Ti Throughput Profiling BottlenecksZorluk 3
Aynı işten alınan iki profilli adım, global batch boyutu ve model değişmeden:
Adım A: input_wait=1ms, forward=20ms, backward=38ms, collective=5ms, toplam=64ms.
Adım B (500 adım sonra alınmış): input_wait=27ms, forward=20ms, backward=38ms, collective=5ms, toplam=90ms.
Forward, backward ve collective iki adım arasında değişmemiş. Adım B'nin 26ms daha yavaş olmasını en makul şekilde ne açıklar?
  • aiki adım arasında model büyümüş
  • bcollective, daha fazla rank katıldığı için yavaşlamış
  • coptimizer daha maliyetli bir güncelleme kuralına geçmiş
  • dveri hattı geride kalmış
Açıklama:Her hesap/iletişim fazı (forward, backward, collective) A ve B arasında birebir aynı; yalnızca input_wait, neredeyse tam 26ms'lik farka eşit şekilde büyümüş. Bu, yavaşlamayı hesaba, iletişime ya da modelin değişmesine değil (bunlar forward/backward'a yansırdı) veri hattının geride kalmasına işaret eder.
Ti Throughput Profiling BottlenecksZorluk 2
times = []
for i in range(10):
    t0 = time.perf_counter()
    loss = train_step(batch)
    t1 = time.perf_counter()
    times.append(t1 - t0)
print(sum(times) / len(times))

train_step'in asenkron kernel'lar başlattığı ve onlar bitmeden döndüğü bir GPU'da, bu zamanlama kodunun asıl sorunu nedir?
  • at1, kernel'lar bitmeden hemen başlatıldıkları anda yakalanıyor, bu yüzden süre gerçek işi az gösteriyor
  • bperf_counter() tek bir adımı zamanlamak için yeterince hassas değildir
  • c10 iterasyon herhangi bir ortalama hesaplamak için yeterli örnek değildir
  • ddöngü, GPU tarafından başlatılan kod için özel olarak tasarlanmış zamanlayıcı olan time.time()'a geçmelidir
Açıklama:GPU kernel çağrıları asenkrondur: kernel kuyruğa girer girmez Python çağrısı döner, kernel bitince değil. t1'den önce açık bir senkronizasyon noktası olmadan, duvar-saati farkı büyük ölçüde çağrı-dağıtım yükünü ölçer, gerçek hesap süresini değil. Diğer şıklar buradaki asıl kusur değildir.
Ti Throughput Profiling BottlenecksZorluk 2
Bir ekip, kararlı-durum verimini tahmin etmek için taze bir sürecin ilk 5 eğitim adımını ölçüyor: [420ms, 38ms, 36ms, 37ms, 36ms]. Bu 5 sayının ortalamasını 'adım süresi' olarak kullanmaları hangi hatayı içerir?
  • ailk adım tek seferlik ısınma maliyeti içerir, bu da ortalamayı yukarı çeker
  • b5 örnek herhangi bir ortalama için istatistiksel olarak geçersiz bir örneklem boyutudur
  • cortalama yanlış özet istatistiktir, bunun yerine standart sapma raporlanmalıdır
  • dadım süresi bir koşunun ömrü boyunca doğal olarak azalır, bu yüzden erken adımlar zaten anlamsızdır
Açıklama:420ms'lik ilk adım, tekrarlanmayan tek seferlik maliyetlerden (thread pool/allocator ısınması, kernel seçimi, JIT/autotune) kaynaklanan bir aykırı değerdir. Onu 5 örneklik ortalamaya dahil etmek, koşunun geri kalanında geçerli olacak kararlı-durum değerinin (~37ms) çok üzerine çeker.
Ti Throughput Profiling BottlenecksZorluk 3
30 ardışık adım süresi kaydedilmiş (ms), ilki tek seferlik ısınma aykırı değeri:
[178, 21, 20, 22, 21, 20, 21, 22, 21, 20,
  21, 20, 22, 21, 20, 21, 22, 21, 20, 21,
  22, 21, 20, 21, 22, 21, 20, 21, 22, 21]

30 değerin tamamı üzerinden ortalama ile medyan hesaplamanın etkisini aşağıdakilerden hangisi en iyi tanımlar?
  • aortalama ve medyan neredeyse birebir aynı çıkar çünkü ikisi de tek bir aykırı değere eşit ölçüde duyarlıdır
  • bmedyan aykırı değer tarafından yukarı çekilir, ortalama ise tipik adım süresine yakın kalır
  • cortalama 178ms'lik aykırı değerle yukarı çekilir; medyan ~21ms civarında kalır
  • dhiçbir istatistik etkilenmez, çünkü 30 değer içindeki tek bir aykırı değer önem taşımayacak kadar küçük bir orandır
Açıklama:30 değer arasındaki tek bir aykırı değer, ortalamayı kabaca (178-21)/30 ≈ 5ms kaydırır — gerçek ve ölçülebilir bir şişme. Ortadaki sıralı değer olan medyan ise, tek bir uç değer olduğu sürece o değerin büyüklüğünden etkilenmez — tipik ~21ms'de kalır.

2400 soruluk ML Engineer bankasında kendini sına.

Mülakata başla