StringZilla v1.0 ส่งมอบประสิทธิภาพที่เร็วกว่า NVIDIA H100 ถึง 109 เท่าในการประมวลผลสตริง

ทีมชุมชน BigGo
StringZilla v1.0 ส่งมอบประสิทธิภาพที่เร็วกว่า NVIDIA H100 ถึง 109 เท่าในการประมวลผลสตริง

StringZilla v1.0 ได้เปิดตัวแล้วในฐานะรุ่นแรกที่รองรับ CUDA ของไลบรารีประมวลผลสตริงประสิทธิภาพสูงนี้ โดยอ้างว่ามีการปรับปรุงความเร็วที่น่าทึ่งซึ่งได้รับความสนใจจากนักพัฒนาและนักวิจัย ไลบรารีนี้ตอนนี้สามารถทำงานได้ทั้งบน CPU และ GPU โดยนำมาซึ่งการเร่งความเร็วที่สำคัญสำหรับการคำนวณความคล้ายคลึงของสตริงและงานด้านชีวสารสนเทศ

คุณสมบัติหลักของ StringZilla v1.0:

  • รองรับหลายแพลตฟอร์ม: การเร่งความเร็วด้วย CPU และ GPU พร้อม CUDA
  • อัลกอริทึมขั้นสูง: Levenshtein distance, Smith-Waterman, affine gap penalties
  • การปรับแต่งฮาร์ดแวร์: ชุดคำสั่ง AVX-512, NEON, SVE, SVE2
  • การเชื่อมโยงภาษา: C, C++, CUDA, Rust, JavaScript, Go, Swift, Python
  • ฟังก์ชัน Hash: ฟังก์ชัน hash ใหม่ 2 ตัวพร้อมรองรับ streaming
  • เน้นด้านชีวสารสนเทศ: ต้นทุนการทดแทนแบบกำหนดเองสำหรับลำดับโปรตีน
  • ใบอนุญาต: Apache 2.0 (ใช้งานเชิงพาณิชย์ได้ฟรี)

การอ้างสิทธิ์ด้านประสิทธิภาพเผชิญกับการทดสอบในโลกแห่งความเป็นจริง

การอ้างสิทธิ์หลักที่ว่าประสิทธิภาพเร็วกว่า GPU NVIDIA H100 ถึง 109 เท่าได้จุดประกายการอพิจารณาโดยละเอียดในชุมชนนักพัฒนา อย่างไรก็ตาม เมื่อทดสอบเทียบกับไลบรารีที่มีชื่อเสียงอย่าง memchr crate ของ Rust ที่ใช้โดย RipGrep ผลลัพธ์แสดงให้เห็นภาพที่มีความซับซ้อนมากขึ้น การเปรียบเทียบเบนช์มาร์กเผยให้เห็นว่าแม้ว่า StringZilla จะแสดงประสิทธิภาพที่สามารถแข่งขันได้ แต่ memchr มักจะรักษาความได้เปรียบในการดำเนินการค้นหาสตริงย่อย โดยเฉพาะอย่างยิ่งในระบบที่ไม่มีการรองรับ AVX-512

ความได้เปรียบด้านประสิทธิภาพดูเหมือนจะเด่นชัดที่สุดบนฮาร์ดแวร์รุ่นใหม่ที่มีความสามารถ AVX-512 การอัปเดตล่าสุดระบุว่าไลบรารีสามารถบรรลุ GigaCUPS มากกว่า 900 บนอินพุต 1000 ไบต์ด้วยฮาร์ดแวร์ NVIDIA H100 และประสิทธิภาพที่สูงยิ่งขึ้นบนโปรเซสเซอร์ Intel Xeon 6 Granite Rapids ล่าสุดที่มี 192 คอร์ฟิสิคัล

ข้อกำหนดฮาร์ดแวร์จำกัดการนำไปใช้ในวงกว้าง

ข้อจำกัดสำคัญเกิดขึ้นจากการที่ StringZilla มุ่งเน้นไปที่ชุดคำสั่ง AVX-512 ซึ่งยังคงไม่มีอยู่ในโปรเซสเซอร์สำหรับผู้บริโภคจำนวนมาก แม้แต่ชิป Intel รุ่นใหม่อย่าง i9-14900K ก็ขาดการรองรับ AVX-512 แม้ว่า CPU เดสก์ท็อปที่ใช้ Zen4 ของ AMD จะรวมมันไว้ ข้อกำหนดฮาร์ดแวร์นี้สร้างความแตกแยกระหว่างแอปพลิเคชันในศูนย์ข้อมูลและผู้บริโภค

นี่คือปัญหาของฉันกับการกำหนดเป้าหมาย AVX-512 มันไม่ได้ขาดหายไปเฉพาะใน CPU AVX2 เท่านั้นที่เก่ากว่า มันยังขาดหายไปใน CPU AVX2 เท่านั้นที่ใหม่กว่าจำนวนมาก

ไลบรารีรองรับโปรเซสเซอร์ ARM ด้วยเคอร์เนล NEON, SVE และ SVE2 แม้ว่าชุดคำสั่งสองตัวหลังจะพบได้หลักในฮาร์ดแวร์เฉพาะทางอย่าง AWS Graviton 3 หือระบบซูเปอร์คอมพิวเตอร์

แอปพลิเคชันชีวสารสนเทศขับเคลื่อนการพัฒนา

การผลักดันการพัฒนาล่าสุดเกิดจากความต้องการที่เพิ่มขึ้นในอุตสาหกรรมเทคโนโลยีชีวภาพและเภสัชกรรม เมื่อปริมาณข้อมูลลำดับชีวภาพขยายตัวอย่างรวดเร็ว บริษัทต่างๆ ต้องการไปป์ไลน์การคำนวณที่เร็วขึ้นสำหรับงานอย่างการจัดตำแหน่งลำดับโปรตีน การปรับปรุงของไลบรารีสำหรับการคำนวณระยะทาง Levenshtein และอัลกอริทึม Smith-Waterman ตอบสนองความต้องการเหล่านี้โดยตรง

StringZilla นำเสนอค่าปรับ affine gap และต้นทุนการทดแทนแบบกำหนดเองโดยเฉพาะสำหรับลำดับชีวภาพ โดยก้าวข้ามการเปรียบเทียบสตริงพื้นฐานไปสู่การจัดการความซับซ้อนของการวิเคราะห์ข้อมูลพันธุกรรมและโปรตีน

ฟังก์ชันแฮชใหม่และการรองรับหลายภาษา

นอกเหนือจากการประมวลผลสตริง การเปิดตัวครั้งนี้รวมถึงฟังก์ชันแฮชใหม่สองตัวที่ออกแบบมาเพื่อแข่งขันกับตัวเลือกที่มีชื่อเสียงอย่าง xxHash ไลบรารีตอนนี้รองรับการแฮชแบบเพิ่มหน่วย, seed แบบกำหนดเอง และสร้างเอาต์พุตที่สอดคล้องกันข้ามแพลตฟอร์มและสถาปัตยกรรมต่างๆ

ความพยายามทางวิศวกรรมขยายไปทั่วหลายภาษาโปรแกรมมิ่ง โดยมี binding ที่พร้อมใช้งานสำหรับ C, C++, CUDA, Rust, JavaScript, Go และ Swift การรองรับภาษาที่กว้างขวางนี้มีเป้าหมายเพื่อทำให้การปรับปรุงประสิทธิภาพเข้าถึงได้โดยไม่คำนึงถึงสภาพแวดล้อมการพัฒนา

ประสิทธิภาพการสร้างสตริงแบบสุ่ม

ไลบรารี @ 500 ไบต์ @ 1000 ไบต์
aesrand-simd 0.73 GB/s 1.43 GB/s
crc-hash-benchmarking 0.63 GB/s 1.72 GB/s
xxHash-benchmarking 2.82 GB/s 4.22 GB/s
jhash-simd 4.65 MB/s 4.05 GB/s
stringzilla-simd 11.36 GB/s 15.27 GB/s
StringZilla ปรับปรุงเทคนิคการประมวลผลสตริงและบรรลุการปรับปรุงประสิทธิภาพอย่างมีนัยสำคัญ
StringZilla ปรับปรุงเทคนิคการประมวลผลสตริงและบรรลุการปรับปรุงประสิทธิภาพอย่างมีนัยสำคัญ

ความสนใจจากอุตสาหกรรมและแอปพลิเคชันในอนาคต

แม้ว่าจะยังไม่มีส่วนขยาย PostgreSQL อยู่ในปัจจุบัน แต่มีรายงานว่าผู้จำหน่ายฐานข้อมูลเชิงพาณิชย์กำลังทดลองกับการรวม StringZilla ฟังก์ชันแฮชใหม่อาจปรับปรุงประสิทธิภาพ JOIN ในการดำเนินการฐานข้อมูลได้ ในขณะที่ความสามารถในการสร้างลายนิ้วมือโดยใช้คณิตศาสตร์ modulo 52 บิตอาจเป็นประโยชน์ต่องานดึงข้อมูลขนาดเพตาไบต์

ใบอนุญาต Apache 2.0 ของไลบรารีรับประกันการเข้าถึงฟรีสำหรับทั้งแอปพลิเคชันเชิงพาณิชย์และการวิจัย ซึ่งอาจเร่งการนำไปใช้ในสภาพแวดล้อมการคำนวณประสิทธิภาพสูงที่การประมวลผลสตริงยังคงเป็นคอขวด

อ้างอิง: Processing Strings 109x Faster than Nvidia on H100