SPMD एक्सटेन्सनको साथ C भाषाको लागि Intel द्वारा विकसित ISPC 1.31 कम्पाइलरको रिलीज

इन्टेलले ISPC १.२५ (इम्प्लिसिट्स SPMD प्रोग्राम कम्पाइलर) प्रकाशित गरेको छ, जुन SPMD (एकल कार्यक्रम, बहु डेटा) समानान्तर प्रोग्रामिङ एक्सटेन्सनहरूसँग C कोड कम्पाइल गर्न डिजाइन गरिएको हो, जसले इनपुट डेटाको विभिन्न सेटहरूको साथ एकल कार्यक्रमको धेरै उदाहरणहरूको समानान्तर कार्यान्वयन सक्षम गर्दछ। परियोजना कोड C++ मा लेखिएको छ र BSD लाइसेन्स अन्तर्गत वितरित गरिएको छ। यसले समर्थन गर्दछ Linux, Windows, macOS र FreeBSD।

SPMD विस्तारहरू भएका C कार्यक्रमहरू CPU र GPU द्वारा प्रदान गरिएका SIMD कम्प्युटेसनल एकाइहरूमा कार्यान्वयनको लागि कम्पाइल गरिएका छन्, जसले तपाईंलाई निम्न-स्तरको अप्टिमाइजेसनहरू र कोडमा SIMD निर्देशनहरूको स्पष्ट प्रयोग बिना SIMD भेक्टोराइजेशन मेकानिज्महरू प्रयोग गर्न अनुमति दिन्छ। समानान्तर कार्यहरू लेख्नको लागि, C भाषाको परिचित वाक्यविन्यास र मुहावराहरू प्रयोग गरिन्छ - SPMD प्रकार्यहरूले C/C++ मा लेखिएका प्रकार्यहरू र संरचनाहरूसँग प्रत्यक्ष अन्तरक्रिया गर्दछ। अवस्थित डिबगरहरू प्रोग्रामहरू डिबग गर्न प्रयोग गर्न सकिन्छ।

ISPC ले कोड उत्पादन र अप्टिमाइजेसनको लागि ब्याकइन्डको रूपमा LLVM पूर्वाधार प्रयोग गर्दछ। x86 (SSE2, SSE4, AVX, AVX2, AVX512) र ARM (NEON) भेक्टर निर्देशनहरू समर्थित छन्, साथै GPU साइड (Intel Gen9 र Xe) मा अफलोडिङ गणनाहरू। SSE भेक्टर ब्लकहरू एक पटकमा 4 तत्वहरू प्रशोधन गर्ने आर्किटेक्चरहरूमा, ISPC को प्रयोगले 3 वा बढी पटक कार्यक्रम कार्यान्वयन एक्सेलेरेशन प्राप्त गर्न सम्भव बनाउँछ, र AVX भेक्टर ब्लकहरू एक पटकमा 8 तत्वहरू प्रशोधन गर्ने आर्किटेक्चरहरूमा, एक्सेलेरेशन 5-सम्म पुग्न सक्छ। 6 पटक। यसबाहेक, भेक्टर ब्लकको साइजको अतिरिक्त, विभिन्न प्रोसेसर कोरहरूमा कार्यान्वयन गरेर स्केलिंग पनि सुनिश्चित गरिएको छ।

ISPC संस्करण १.२४ मा थपिएका प्रमुख आविष्कारहरू:

  • Добавлена экспериментальная поддержка 64-разрядной little-endian архитектуры PowerPC (ppc64le). По умолчанию осуществляется сборка для POWER ISA 2.7 (POWER8+) с расширениями VSX (Vector Scalar Extension).
  • Добавлены новые сборочные цели avx10.2nvl-x4, avx10.2nvl-x8, avx10.2nvl-x16, avx10.2nvl-x32 и avx10.2nvl-x64, реализующие поддержку расширенный наборов инструкций AVX10.2 (Advanced Vector Extensions) и APX (Advanced Performance Extensions) для процессоров на базе микроархитектуры Intel Nova Lake.
  • В диспетчеризаторе обеспечен выбор вариантов сборочных целей с поддержкой AMX (avx512spr, avx512gnr, avx10.2dmr) только при реальной поддержке расширений AMX (Advanced Matrix Extensions) в операционной системе и CPU.
  • Добавлена опция «—opt=disable-apx» для выборочного отключения отдельных возможностей x86 APX (egpr, ndd, push2pop2, ppx, ccmp, cf, nf, zu и jmpabs), которые по умолчанию включены в поддерживающих APX сборочных целях, таких как avx10.2dmr и avx10.2nvl.
  • Добавлены сбалансированный («balanced») и агрессивный («aggressive») режимы оптимизации математических вычислений, включаемые через опцию «—opt=fast-math» и более агрессивные по сравнению с применяемым по умолчанию режимом оптимизации.
  • В сандартную библиотеку добавлены новые математические функции:
    erf, erfc (функции ошибок Гаусса), expm1 (точное вычисление «exp(x)-1»), log1p («log(1+x)»), sinh, cosh и tanh (гиперболические синус, косинус и тангенс). Повышена точность и производительность функций asin, acos, atan и log.
  • Значительно повышена производительность 32-битных операций перестановки (shuffles) для сборочной цели avx2-i32x16 и вычислений popcnt для целей avx2-i8x32, avx512skx-x32 и avx512skx-x64.
  • Инструментарий LLVM обновлён до находящейся в разработке ветки 23.

स्रोत: opennet.ru

DDoS सुरक्षा, VPS VDS सर्भरहरू भएका साइटहरूको लागि भरपर्दो होस्टिङ खरिद गर्नुहोस् 🔥 DDoS सुरक्षा, VPS VDS सर्भरहरू सहितको भरपर्दो वेबसाइट होस्टिङ किन्नुहोस् | ProHoster