İlk olarak 1960'larda sunulan stokastik hesaplama (stochastic computing, SC) son yıllarda yeniden ilgi odağı olmuş ve gelişmekte olan yeni nesil teknolojilerde (emerging technologies) kullanılmaya başlanmıştır. Bu hesaplama paradigması, verileri (X) geleneksel ikili sayı tabanı (conventional binary radix) kullanarak değil, alışılmadık temsil ile; lojik-1 ve lojik-0'ların bit akışındaki birikimli değerlerine ve bit olasılığına (Px) göre bit pozisyonundan bağımsız olarak kodlar. Böylece karmaşık fonksiyonların basit devreleri (örneğin tek bir AND kapısı ile çarpma işlemi) ve yumuşak hatalara (örneğin bit çevirme) karşı toleranslı sistemler elde edilir. Stokastik hesaplama bit akışlarını N boyutunda (512 bit, 1024 bit vb.) uzun dizilerle ifade ettiğinden, gecikmeler (latency) kaçınılmaz olarak meydana gelmektedir. Literatürde, gerçek donanım sistemleri açısından bu soruna çözüm aranmışsa da yazılım benzetim çerçevesi geri planda kalmaktadır. Bu sebeple, bu doktora tezinde stokastik sistemlerin yazılım tabanlı benzetimine ve gecikmeler ile hafıza kullanım sorunlarına ilişkin çözümler sunulmaktadır. Bu tez ayrıca stokastik hesaplama tabanlı görüntü işlemeye sistematik bakışı tartışmakta ve yeni bit akış işlemeli ikili sinir ağlarını önermektedir.
İlk bölümde literatüre hızlı bakış ve tezin amacının devamında sunulan hipotez, katkılar ile birlikte verilmektedir. Ardından, ikinci bölümde, temel tasarım ögeleri tanıtılmaktadır. Bu bölüm tezin arka planını oluşturmaktadır. Bit akışı yapısı, sayı kodlama teknikleri, korelasyon, rasgele bit akış üreteçleri, stokastik hesaplama yapıtaşı ögeleri ve aritmetik operasyonlar ile ideal olmayan durumlardan gürültü ve yumuşak hata kavramları tanıtılmaktadır. Stokastik hesaplama gürültüye karşı gürbüz bir hesaplama metodu olduğundan, tezin ilerleyen bölümleri için önemli olan bit çevirme (bit-flip) hataları gibi yumuşak hataların ön tanımı verilmiştir. Ayrıca bu bölümde, çok girişli toplama devresi için kademelenmiş mimaride optimizasyon sunulmaktadır. Bu bölüm ilk bölüme göre genişletilmiş bir literatür derlemesi alt bölümüne sahiptir. Literatürde yer alan özellikle görü ve makine öğrenmesi konularındaki çalışmalar irdelenmiş, son on yıldaki doktora tezleri, sunulan tez çalışmasının literatürdeki yerini belirlemek adına incelenmiştir.
Tezin ilerleyen bölümlerinde, yazılım tabanlı benzetim için literatüre sunulan stokastik hesaplamada olumsallık tablolarının (contingency table, CT) kullanımı anlatılmaktadır. Bu hesaplama paradigmasında verilerin işlenmesi, gecikmelere sebep olan uzun bit akışları üzerinden gerçekleştirildiği için özellikle yoğun aritmetik işlemlerin olduğu yapay sinir ağı (artificial neural network, ANN) gibi uygulamalarda, benzetim zamanı açısından darboğaz meydana gelmektedir. Öte yandan, sistem benzetimi için değişken olarak tanımlanan uzun bit akışları (özellikle 128 bit ve daha uzun boyutlu), yazılım ortamında kapladığı hafıza alanı bakımından sorun teşkil etmektedir. Monte Carlo gibi benzetim yöntemleriyle çoklu verilerin testi, hafıza ve benzetim zamanı açısından problem yaratmaktadır. Bu tez çalışmasının önemli katkılarından biri olan yazılımda hafıza ve gecikme sorununun çözümü için şu amaç güdülür: Girdi bit akışlarının lojik operasyon sonuçları için, bit akışı üretmeden ve lojik operatörler kullanmadan, sadece skaler değerler üzerinden lojik benzetim yapabilmek. Üçüncü bölümde önerilen yaklaşımla bunun nasıl mümkün olabileceğine dair ön sonuçlar sunulmuş ve ilgili benzetim yaklaşımının görü ve sinir ağları açısından uygulama sonuçları sırasıyla dördüncü ve beşinci bölümde genişletilmiştir (New perspectives toward CT simulation-I, II ve III alt başlıklarında). Böylece, hem hafıza ve çalışma zamanı açısından verimli bir yaklaşım sunulmuş hem de N boyutlu iki bit akışı işleneninin tüm 2^(2N) durumlu kartezyen çifti benzetime dâhil edilmiştir; yani diğer benzetimler gibi veriler arasından rasgele örneklemeye gerek kalmamıştır.
Olumsallık tablosu; iki giriş skaleri (X1, X2), bit akışı çapraz korelasyonu ve bit akışı uzunluğu (N) ile kurulur. Korelasyon kontrolü, bit akışları olmadan hesaplama yapabilmek için gereklidir. Stokastik hesaplama için ise üç temel korelasyon noktası kritiktir: maksimum, minimum ve sıfır korelasyon. İlgili bölümde bu korelasyon değerleri için olumsallık tablosunun kurulumu verilmektedir. Özellikle sıfır korelasyonlu (korelasyonsuz - uncorrelated) bit akışları ile işlem yapmak bazı stokastik tabanlı aritmetik işlemlerin doğruluğu açısından çok önemlidir. Örneğin, bipolar kodlama (bipolar encoding, BPE) ile kodlamış iki sayıya ait bit akışlarının çarpılması, XNOR lojik işleci ile yapılmaktadır. Bu iki sayıya ait bit akışlarının birbirleri ile olan korelasyonu çarpma işleminin doğruluğunu etkilemektedir. Literatürde var olan "stokastik çapraz korelasyon" (stochastic cross-correlation, SCC) metriği üzerinden kurgulanan benzetim yöntemi ile sıfır korelasyon için olumsallık tablosunun kurulumuna ait üç farklı yöntem önerilmektedir. SCC metriği 1 değerini vererek bit akışları arasındaki maksimum korelasyonu ölçerken, -1 değeri ile minimum korelasyonu belirtir. Sıfır korelasyon ise SCC ≈ 0 olduğunda, yani birbirinden bağımsız bit akışları söz konusu ise elde edilir. Olumsallık tablosu iki işlenen bit akışının herhangi üst üste denk gelen bitleri için lojik 11, 10, 01 veya 00 çakışmalarına ait dört çiftin akış boyunca birikimli değerlerini tutar. Bu değerler sırasıyla a, b, c ve d ile anılmaktadır ve olumsallık tablosu ilkelleri (CT primitives) olarak isimlendirilir. Burada a değeri, yani iki bit akışının herhangi m'inci bitine ait lojik değerin her ikisinde de 1 olması durumu, öncelikli olumsallık tablosu elemanı olarak nitelendirilmiştir. Diğer tablo elemanları, b, c ve d ise a belirlendikten sonra önerilen formüller ile hesaplanır. CT ilkellerinin doğrusal kombinasyonu, lojik işleçlere bağlı sonucu verir (örneğin, XNOR a + d'dir.). Maksimum korelasyon (a değerinin maksimum ve SCC = 1 olması) ve minimum korelasyon (a değerinin minimum ve SCC = -1 olması) kolayca a öncelikli elemanına göre kurulmaktadır. Sıfıra yakın korelasyon ise önerilen üç farklı yöntemde bu a değerinin ayarlanması ile sağlanmaktadır. İlk yöntem maksimum ve minimum a değerlerinin aritmetik ortalamasını alırken, ikinci yöntem polinom yakıştırma yaklaşımı kullanır. Üçüncü ve en başarılı yöntem ise SCC metriğinin optimizasyonu ile elde edilmektedir.
Diğer yandan olumsallık tabloları, hata ölçümü ve benzetimi açısından da oldukça önemli sonuçlar ortaya koymaktadır. Farklı ikili korelasyon metrikleri (Jaccard, Dice, Kulczynski 2, Pearson ve Ochiai) ile hata benzetimleri, tüm 2^(2N) kartezyen çiftleri üzerinden çarpma aritmetiği için verilir. Metrik değerinin dağılımına (popülasyon) karşı aritmetik hata grafikleri tüm giriş kombinasyonları üzerinden sunulabilir; çünkü olumsallık tablosuna bağlı tezde önerilen ortaya çıkma (occurrence, O_CT) formülü her eşsiz korelasyon değerinin ortaya çıkış sayısını hızlıca hesaplayabilir. Önemli bir katkı olarak rasgele dalgalanma hatasının (random fluctuation error) benzetime eklenmesi de literatüre sunulan diğer öneridir. Stokastik hesaplama için kurulacak olan bir öykünüm aracı için gerekli olabilecek rasgele kaynak modelleri; Sobol düşük tutarsızlık dizi modeli, doğrusal geri beslemeli kaydırmalı yazmaç modeli (linear-feedback shift register, LFSR) ve binom dağılım modeli, yine ilgili bölümde olumsallık tablosu kapsamında önerilmiştir.
Görüntü işleme açısından bit akış tabanlı hesaplama dördüncü bölümde verilmektedir. Görüntü pikselleri bit akışları ile ifade edilir. Görüntü işleme algoritması basit lojik sistemlerle (AND kapısı ve çoklayıcı - multiplexer, MUX) gerçekleştirilir. Bir yeniden yorumlama ile ilk öneri gürültü giderici ortalama filtresi (mean filtering) üzerine kurulmuştur. Ardından, literatürde önerilen yöntemlere de atıfta bulunarak görüntü toplama gürültüsü (image acquisition noise) için farklı mimarilerin görüntü kenar bulma (edge detection) analizi sunulmaktadır. Bu mimarilerde "yaklaşık hesaplama" (approximate computing, AC) çerçevesinde sistem karmaşıklığı üç farklı model ile ele alınır; temel motivasyon, ölçekli toplayıcının (MUX) ölçek faktörüne müdahale etmektir. Ölçek faktörü toplama işlemi sonucunu MUX seçim bağlantı noktasının (selection port) sahip olduğu bit akışı olasılık değerine (Ps) göre ölçekler; sonuç beklenen değerden sapar. Bu örnek çalışma için kenar tespitinde kullanılan filtre Prewitt filtresidir. Önerilen üç farklı model arasında, daha yaklaşık (approximate) olmasına rağmen sade tasarım (plain design, PD) gürültü gürbüzlüğü açısından daha iyi tepe sinyal-gürültü oranı (peak signal-to-noise ratio, PSNR) sunmuştur. Sonuçların yapısal benzerlik ölçüsü (structural similarity, SSIM) ile incelemesi de verilmektedir. Görüntü işleme açısından stokastik hesaplamanın şablon eşleştirme (template matching) ile kullanımı bir diğer katkı olarak sunulmaktadır. Tek bir AND kapısının bit akışları ile beslenmesiyle şablon eşleştirme gerçekleştirilir. Test için kare kodların (quick response code, QR code) gürültülü ortamda tespit şablonu üzerinden analizi verilmektedir. Evrişim (convolution) işlemi ile aranan şablon, kare kod üzerinde gezdirilerek kodda bulunan üç adet noktanın (finder pattern - bulucu desen) tespit doğruluk yüzdesi hesaplanmaktadır. Gauss gürültüsü ve alacalı gürültüye sahip görüntülerin testi, gürbüzlüğü açısından stokastik hesaplamanın gerekirci (deterministic) hesaplamaya olan hafif üstünlüğü ile sonuçlanmıştır.
Bit akışı tabanlı görü makineleri kapsamında diğer iki algoritma, çift doğrusal aradeğerleme (bilinear interpolation) ve görüntü birleştirme (image compositing), bilgimiz dâhilinde stokastik hesaplama ile ilk kez bu tez çalışmasında sentezlenmektedir. Çift doğrusal aradeğerleme, görüntülerin boyutlarını ölçekleyen bir yöntemdir; bu çalışmada 4 girişli ve 1 çıkışlı MUX ile nasıl basit donanım karşılığı olabileceği kanıtlanmıştır. Görüntü birleştirme ile arka plan ve ön plan görüntüleri bir araya getirilerek yeni birleşik görüntü elde edilir. Bu algoritma için ise bit akışları kullanarak sadece 2 girişli ve 1 çıkışlı MUX yardımıyla nasıl birleşik görüntü elde edilebileceği kanıtlanmıştır. Her iki algoritma da olumsallık tabloları yardımı ile doğrulanır. Buradaki diğer önemli katkı, farklı rasgele sayı üreteç modellerinin (Sobol, doğrusal geri beslemeli kaydırmalı yazmaç ve binom dağılımı), benzetimde neredeyse bire bir taklit edilerek uygulamada doğrulanmasıdır. Özetle, gerçek donanım olmadan, bit akışları yazılımda üretilmeden ve işlenmeden, gerçek donanım varmış ve bit akışları işleniyor gibi sonuçlar elde edilmiştir. Çalışma zamanı ve bellek kullanımı ise önemli ölçüde azaltılmıştır.
Öğrenme sistemlerine stokastik hesaplamanın uyarlanmasına beşinci bölümde yer verilmiştir. Öncelikle, tek stokastik nöron önerilmekte olup, erken öğrenme dönemlerinde iki sınıflı doğrusal sınıflamada gerekirci yaklaşıma göre üstünlüğü vurgulanmaktadır. Gürültülü veri ile nöron eğitimi sırasında erken epoklarda daha yüksek sınıflama başarısı elde edilmiştir. İlgili bölümde çok katmanlı sinir ağı mimarisine ilişkin bir hatırlatma bölümüne de yer verilmiştir. Bu bölümdeki derleme, sinir ağlarına aşina olmak isteyen okuyucular için hazırlanmıştır. İleri yön, geri yayılım ve ağ ağırlıklarının güncellemesiyle öğrenme işleminin nasıl olduğuna ilişkin bir dizi denklem derlenerek geleneksel ağ sistemleri hatırlatılmıştır. Ardından, stokastik hesaplamanın çok katmanlı mimarideki uyarlaması ve genel çerçevesi (stochastic computing-based neural network, SCNN) anlatılmakta, bu sırada literatüre sunulan yeni bir ağ mimarisi verilmektedir: Bit akış işlemeli ikili sinir ağı (bitstream processing binarized neural network, BSBNN). Geleneksel ikili sinir ağı (binarized neural network, BNN), ağ ağırlıklarını ve nöron aktivasyonlarını 1 bit ile ifade etmekte; ancak bu durum hafıza hataları gibi yumuşak bit çevirme hatalarına karşı kırılgan bir yapıya neden olmaktadır. Verilerin 1 bit ile ifade edilmesi çarpma ve toplama gibi temel ağ operasyonları açısından son derece verimli bir donanım yapısı sunmasına rağmen, hataya meyilli yeni donanım ve hafıza teknolojilerinde sorun teşkil etmektedir. Geleneksel ikili ağlar çarpma işlemi için XNOR lojik kapılarını, toplama için ise basit sayıcı devrelerini kullanmaktadır. Bu açıdan stokastik hesaplama için kullanılabilecek çarpma ve toplama devre elemanları ile örtüşmektedir. Aynı basit donanım elemanları, bit çevirme hatalarına daha gürbüz olan bit akış işlemeli ağ için kullanılarak daha verimli sonuçların elde edilmesi sağlanır. Literatüre sunulan makalemizde bu avantajın yanı sıra, nöron aktivasyon fonksiyonu için toplayıcı devresinde lojik maskeleme ile ek aktivasyon modülüne gerek olmadan hafif bir mimari önerilmektedir. Geleneksel ikili ağlarda aktivasyon sonucuna, bir eşik değerine göre çıkarma işlemiyle +1 veya -1 nöron çıktısı alınarak karar verilir (+1 donanımda lojik-1 ile, -1 ise lojik-0 ile kaydedilir.). Bizim önerimizde, bipolar kodlamanın gücü ile nöron çıktısına, ön-aktivasyon (pre-activation, S) bit akışındaki lojik-1 veya lojik-0'ların çoğunluk-azınlık dengesi kontrol edilerek karar verilir. Bu kontrol toplama sırasında eş zamanlı yapıldığı için ek bir aktivasyon modülüne gerek olmaz. Böylelikle hem daha az kaynak kullanımı sağlanır (nöron bazında %30 daha az) hem de bit çevirme hatalarına karşı daha verimli bir mimari sunulur. Bit çevirme varlığında ağ eğitimi ile görüntü ve ağ ağırlıklarına enjekte edilen yumuşak hatalar, ilgili hata enjeksiyon değerinin test ağında kullanılmasıyla nasıl gürbüz ağ doğruluğu elde edildiğini kanıtlamıştır. Önerilen mimarinin, geleneksel kırılgan ikili ağa göre üstün sağlamlığı ispatlanmıştır.
Son olarak, farklı sinir ağı mimarilerinin karşılaştırılması ve olumsallık tablosunun bit akış tabanlı sinir ağı benzetimi için oyuna dâhil edilmesi tartışılmıştır. Herhangi bir nicemleme içermeyen, sabit veya kayan virgüllü aritmetik ile, tam hassas sinir ağı da (full-precision neural network, FPNN) dikkate alınarak, dört ağ yapısı; BNN, BSBNN, SCNN ve FPNN kıyaslanmıştır. Ağ giriş görüntülerinde bozulmalar (kontrast, Gauss bulanıklığı, sis, alacalı gürültü, yakınlaştırma bulanıklığı vb.) söz konusu olduğunda hataya duyarlı ağ eğitimi, duyarlı olmayana göre kıyaslanarak verilmiştir. Görüntü sınıflama doğrulukları açısından, önerilen bit akış işlemeli ikili sinir ağı mimarisinin kıyaslanabilir performansı sunulmuş; ikili ağlarda (BNN ve BSBNN) hataya duyarlı eğitimin önemi gösterilmiştir. Son bölümde ise olumsallık tablosu ile ağ eğitimi sırasında stokastik bit akış tabanlı XNOR çarpmasının benzetimi sunulmuştur. Evrişimsel sinir ağı (convolutional neural network, CNN) mimarisinin sınıflayıcı kısmındaki çarpma işlemlerinde kullanılan XNOR öykünmesi, olumsallık tabloları ile sağlanır. Gerçek bit akış işlemeli modele göre hızlı ağ eğitimi sunulur. Fiziksel bit akışlarını kullanan yazılım benzetimi, akış uzunluğuna bağlı üstel olarak artan bir çalışma zamanı gösterirken, olumsallık tablosu varlığında ağ eğitim süresi bit akış uzunluğundan bağımsız; doğrusaldır.
|
Stochastic computing (SC), a paradigm that dates back to the 1960s, has re-emerged in the last decade by being a tool for emerging technology development. SC adopts unconventional data representation encoding scalars (X) into binary streams. Unlike conventional binary radix, the cumulative values of the logic-1s and logic-0s in the bitstream with a probability Px are evaluated free from the bit position. Thus, SC provides simple circuits of complex functions (e.g., multiplication with a single AND gate) and soft error-tolerant (e.g., robust to bit-flips) systems. However, latency inevitably occurs because SC expresses bitstreams in long sequences size of N (512 bits, 1024 bits, etc.) for high accuracy. Although several solutions for latency in SC hardware systems have been described in the literature, the software simulation of the SC framework falls behind. Therefore, this doctoral thesis proposes the general framework of software-based SC simulations considering both latency and memory issues. This study also discusses the systematic view of SC-based image processing and proposes a new concept, namely the bitstream processing binarized neural network.
The dissertation begins with an introduction presenting a short literature check, the purpose of the thesis, and the hypothesis with the major and minor contributions. Then, the background part presents basic SC concepts such as bitstream structure, scalar encoding techniques, correlation, random bitstream generation, SC building block elements, and arithmetic. A cascaded multiplexer (MUX) optimization algorithm is proposed for scaled additions of multiple operands. Also, a comprehensive survey on vision and learning machines is presented, examining previous efforts and exploring the dissertations in the last decade.
The software-driven SC is further discussed by proposing the utilization of a contingency table (CT). The generation and processing of the lengthy SC bitstreams pose the simulation runtime and memory occupation problems. Considering that applications require intensive arithmetic operations such as artificial neural network (ANN), the problems become significant. To tackle these, scalar-only processing of CT is proposed. CT is set by two input scalars (X1, X2), bitstream cross-correlation, and bitstream length (N). The main objective is to reach the desired logic output using only the scalar values instead of generating bitstreams and processing bit-by-bit with logical operators. The CT holds the cumulative values of four logic pairs, 11, 10, 01, and 00, for any overlapping bits of the two bitstream operands. These cumulative values denoted as a, b, c, and d, respectively, are the CT primitives. The correlation value of the two non-generated bitstream operands sets the prior CT primitive, a, based on the stochastic cross-correlation (SCC) metric. CT is established for maximum (SCC = 1, a is maximum), minimum (SCC = -1, a is minimum), or near-zero (SCC ≈ 0, a is based on the proposed algorithm) correlation. Zero correlation is vital for the accuracy of some SC-based arithmetic operations (e.g., multiplying bipolar encoded bitstreams by XNOR). Therefore, three methods are proposed to set the 'a' prior primitive for near-zero correlation with an algorithm. After the determination of a, the proposed formulas define b, c, and d. The linear combination of CT primitives obtains each logical operator. (e.g., XNOR is a + d.) The CT emulates the entire hardware system in software via the proposed model of random number generators by including SC's built-in random fluctuation error. The random source models imitate Sobol low-discrepancy sequences, linear-feedback shift register (LFSR), and the binomial distribution. Also, CT can simulate all 2^(2N) Cartesian combinations of two input bitstreams; therefore, there is no need for random sampling like in the Monte Carlo simulation.
Next, several image processing techniques on behalf of SC-based vision machines are discussed. The first is the reinterpretation of SC-based mean filtering for noise removal. The second is the Prewitt edge detector, a case study for inspecting the different levels of hardware approximations based on the MUX scaling factor. The plain design (PD) exhibits remarkable edge detection performance in the case of excessive noise. The third technique is template matching to detect finder patterns of quick response (QR) codes in a noisy environment. Pattern matching is accomplished by feeding a single AND gate with bitstreams, and SC achieves slight outperformance compared to the deterministic counterpart. As the first study of its kind, to the best of our knowledge, the two other algorithms, bilinear interpolation and image compositing, are synthesized with SC. Bilinear interpolation is a method of scaling the dimensions of images. It is proven that the hardware equivalent can be a simple 4-to-1 MUX fed by bitstreams. The last technique, image compositing, outputs a new composited image by combining the background and foreground images. It is proposed to obtain the composited image utilizing a simple 2-to-1 MUX via SC. Both techniques are verified with the help of CT. Bilinear interpolation and image compositing highlight another contribution in validating different random number generator models (Sobol, LFSR, and binomial distribution) on behalf of CT.
Finally, this dissertation focuses on the adaptation of SC to learning systems. First of all, a single stochastic neuron is designed, and higher classification accuracy is achieved in early epochs when the neuron is trained with noisy data. Then, the mathematics behind the learning procedure of conventional multi-layer neural network architecture is reviewed. A fully-bitstream processing binarized neural network (BSBNN) is proposed in comparison with the traditional binarized neural network (BNN) architecture. BNNs express network weights and neuron activations with one bit; however, this causes a fragile structure against soft errors such as bit-flips occurring on emerging hardware and memory technologies. In traditional BNN, the neuron activation is +1 or -1, decided by subtraction from a threshold value (+1 is logic-1 and -1 is logic-0 in hardware). In our proposal, the power of bipolar encoding is used, and the neuron output is decided by checking the majority-minority balance of logic-1s or logic-0s in the pre-activation (S) bitstream. Since this control is performed simultaneously during accumulation (counter) via a masking logic, an additional activation module is not required. Thus, less hardware resource utilization is achieved (30% per neuron basis). In addition, a more efficient architecture against bit-flip errors is provided. The proposed architecture proves superior robustness over the conventional fragile BNN regarding image- and weight-based bit-flips. All four different networks are then tested: BNN, BSBNN, stochastic computing-based neural network (SCNN), and full-precision neural network (FPNN), having no quantization. Considering image-based corruptions (contrast, Gaussian blur, fog, speckle noise, zoom blur, etc.), different training scenarios are compared with and without the awareness of corruption in network training. The proposed BSBNN architecture exhibits comparable classification accuracy, and the importance of error-sensitive training in binary networks (BNN and BSBNN) is underscored. In the last section, the performance of the CT-based network simulation is finally unveiled. SC-based XNOR multiplications are present in the classifier part of a convolutional neural network (CNN) architecture. Emulating multiplication via CT results in a faster training runtime than the counterpart with actual bitstream processing. Training a bitstream processing neural network with actual bitstreams (with bit-by-bit processing) shows an exponentially increasing runtime as N increases. Conversely, CT-based simulation provides linear training runtime independent of bitstream length. |