CPU AVX İLE ZKSTARK’ I HIZLANDIRIN
CPU AVX ile Zkstark'ı hızlandırınEigen NetworkOriginal : ENMakale, SIMD ve Intel AVX2/AVX512 kullanımının, özellikle Goldilocks alanında ZKP kanıtlamasını nasıl büyük ölçüde hızlandırabileceğini ve bu da Merklehash ve tüm kanıtlama aşaması için önemli zaman tasarruflarına neden olabileceğini tartışıyor.
——ChatGPT tarafından oluşturulmuşturCPU AVX ile Zkstark'ı hızlandırınSIMD, ZKP kanıtlamasını hızlandırmak için harika bir yaklaşımdır, öz-ZKVM, Merklehash için yarım zaman kazandıran Intel AVX2/AVX512'den ve tüm kanıtlama aşaması için% 15'ten fazla zaman tasarrufu elde etmek için yararlanır.Bu blogda, uygulamamızda bazı kritik adımlara dalacağız ve geri bildiriminiz için umut edeceğiz.Bölüm 1: Goldilocks Alanına Genel BakışΦ olarak gösterilen altın orandan esinlenen Goldilocks alanı bir formül benimser: p = φ² - φ+1.Φ = 2³² seçilerek, ortaya çıkan modül, p = 2⁶⁴-2³² + 1, hesaplama verimliliğinin çok önemli olduğu uygulamalarda etkili bir çözüm olarak ortaya çıkar.Bu azaltılmış boyut, daha hızlı hesaplamaları kolaylaştırır, bu da sınırlı işlem özelliklerine sahip ortamlar için daha uygun bir seçimdir.“+1” seçimi, alanda bulunan birlik köklerinin sayısını arttırır.Bu özellik, hızlı polinom çarpımının gerekli olduğu bazı kriptografik protokollerde anahtar bir bileşen olan NTT [1] 'de özellikle avantajlıdır.Bölüm 2: AVX2 kullanarak grup operasyonlarının uygulanmasıX86 talimat setinin bir uzantısı olan AVX2 (gelişmiş vektör uzantıları 2) paralel işleme özelliklerini önemli ölçüde artırır.SIMD (tek talimat, çoklu veri) mimarisindeki 256 bit genişliğinde kayıtları ile AVX2, aynı anda birden fazla veri öğesini kullanma konusunda usta.Bu yetenek AVX2'nin aynı anda dört 64 bit unsuru işlemesine izin verir, özellikle Goldilocks alanındaki operasyonlar için faydalıdır ve bu da saha operasyonlarının verimliliğinde önemli bir artışa yol açar.Daha sonra, AVX2'nin Goldilocks alanındaki temel işlemleri nasıl kolaylaştırdığını ve alanın sınırları içindeki unsurları koruyan mekanizmaları ve çarpma görevlerinin hızlanmasını vurgulayarak ayrıntılı olarak araştıracağız.
2.
1 Canonicalize_s işlevi, bir saha işleminin sonucunun Goldilocks alanının geçerli aralığında, yani 0 ve Goldilocks_field_order - 1 arasında kalmasını sağlar.Diyelim ki kanonikleştirmemiz gereken dört 64 bit tamsayımız var:•Giriş değerleri (256 bit kayıtta): [a, b, c, d], her biri 64 bit uzunluğunda.
•Bazı saha işlemlerinden sonra değerlerimiz:•a = 0xffffffffffffff00000002 (saha siparişinin biraz üzerinde)
•B = 0xfffffffffff00000001 (saha siparişine eşit)•C = 0x0000000100000000 (saha siparişi dahilinde)•d = 0x00000000ffffffff (saha siparişi içinde)
•Vardiya işlemi: AVX2'de imzalanmış aritmetiğin doğası nedeniyle değerler başlangıçta 2⁶³ ile kaydırılır.Bu değişimi soyut bir şekilde vites (değer) olarak temsil edelim.
•Karşılaştırma ve ayarlama:
(1) Karşılaştırma: Değiştirilen her değeri kaydırılan saha sırasıyla karşılaştırın.•maske = _mm256_cmpgt_epi (shifted_field_order, shift ([a, b, c, d]))•Maske [0, 0, 0xfffffffffffff, 0xffffffffffff
Değer saha siparişinden büyük veya eşitse, saha siparişini ondan çıkarmamız gerekir.•wrapback_amt = _mm256_andnot_si256 (maske, epsilon)
•Epsilon = field_order_wrapping_neg (-field_order mod P'ye eşdeğer)
•[A, B, C, D] 'nin Wrapback_amt örneğimiz [0xfffffff, 0xffffffff, 0, 0] olacaktır.(3) Son ayarlama:
•kanonikleştirilmiş_values = shift ([a, b, c, d]) + wrapback_amt
•Bu adım, A ve B'yi saha siparişini onlardan çıkararak alan aralığına geri getirir.Canonicalize_s işlevini yürüttükten sonra, restorasyon elde etmek için vites işlemini tekrar gerçekleştirin.
2.
2 ÇarpmaAltın orandan ilhamını yansıtan Goldilocks alanının tasarımı, verimli indirgeme işlemlerine katkıda bulunur.Alanın bu eşsiz özelliği, hızlı Karatsuba çarpım algoritması ile oldukça uyumlu hale getirir.Bu bağlamda, Goldilocks alanındaki iki elemanın, x ve y'nin çarpılması, x = (b+aφ) ve y = (d+cφ) ürünü olarak ifade edilebilir, dağıtım özelliğini basitleştirmek ve hızlandırmak için kullanılarak ifade edilebilir.
.Bu yaklaşım, alan içindeki çarpma işlemlerinin verimliliğini artırır.