
Shocking performance boost of assembly code: ~100x faster than C code | Lex Fridman Podcast
Audio Summary
AI Summary
जेबी और मैंने FFmpeg और VLC के सिद्धांतों के आधार पर कंपनियाँ शुरू की हैं, जो निम्न-स्तरीय कार्य पर केंद्रित हैं। जबकि अधिकांश कंपनियाँ C को तेज़ मानती हैं, हमने दिखाया है कि असेम्बली कोड C से 62 गुना तेज़ हो सकता है। हम ओपन-सोर्स समुदाय के डेवलपर्स को काम पर रखते हैं ताकि इस निम्न-स्तरीय प्रोग्रामिंग का व्यावसायिक अनुप्रयोगों के लिए उपयोग किया जा सके।
हमारी एक बड़ी चुनौती विभिन्न ऑपरेटिंग सिस्टम (OS) का समर्थन करना है। VLC विंडोज XP से विंडोज 11, मैक ओएस 10.7 से नवीनतम संस्करण, और iOS 9 से iOS 26 तक चलता है। हम लिनक्स, बीएसडी, और सोलारिस जैसे कई OS का भी समर्थन करते हैं। हमारा छोटा दल माइक्रोसॉफ्ट, गूगल या एप्पल से भी अधिक OS का समर्थन करता है, जिनके पास असीमित संसाधन हैं। उदाहरण के लिए, iOS 9 पर बनाने के लिए, हमें Xcode IDE और SDK के कई संस्करणों को मिलाकर एक "फ्रेंकस्टीन" संस्करण बनाना पड़ता है ताकि 32-बिट iOS 9 पर समर्थन जारी रखा जा सके। यह महत्वपूर्ण है क्योंकि कई उपयोगकर्ता पुराने उपकरणों पर फिल्में देखने के लिए VLC का उपयोग करते हैं, जिससे उन्हें नया हार्डवेयर खरीदने की आवश्यकता नहीं होती है।
हमारा मानना है कि सही ढंग से अनुकूलित करने से, आप लोगों को लगातार नया हार्डवेयर खरीदने के लिए मजबूर नहीं करते हैं। असेम्बली प्रोग्रामिंग, विशेष रूप से SIMD (सिंगल इंस्ट्रक्शन मल्टीपल डेटा) का उपयोग करके, हम एक साथ कई पिक्सेल पर ऑपरेशन कर सकते हैं, जिससे वीडियो प्रोसेसिंग में 10x से 50x तक गति में सुधार होता है। यह एक "खोई हुई कला" है, जिसे हम पुनर्जीवित कर रहे हैं।
डेविड, AV1 वीडियो डिकोडर के लिए हमारा एक प्रोजेक्ट, इस दर्शन का एक उत्कृष्ट उदाहरण है। इसे अक्सर हार्डवेयर में डिकोड करने के लिए बहुत जटिल माना जाता है, लेकिन हमने एक अत्यंत कुशल सॉफ्टवेयर डिकोडर बनाया है। डेविड में 30,000 लाइनें C कोड और 240,000 लाइनें हाथ से लिखे असेम्बली कोड हैं। यह FFmpeg के सभी कोडेक्स के लिए असेम्बली कोड से भी बड़ा है, जिसमें लगभग 100,000 लाइनें हैं। हमारा आदर्श वाक्य