SIMD C ++ लाइब्रेरी [बंद]


14

अतीत में, मैंने DirectX XNA गणित पुस्तकालय के साथ विजुअल स्टूडियो का उपयोग किया है। अब, मैं GNU संकलक संग्रह का उपयोग कर रहा हूँ। क्या कोई एक अच्छा प्रलेखन के साथ एक SIMD गणित पुस्तकालय की सलाह दे सकता है?

जवाबों:


15

आप अपने संकलक / खरीद के SSE (स्ट्रीमिंग सिमड एक्सटेंशन) निर्देशों और आंतरिक (* mmintrin.h फ़ाइलों) का उपयोग करके इसे "स्वयं" भी कर सकते हैं ।


ट्यूटोरियल

यहां विधानसभा के साथ SSE निर्देशों का उपयोग करने का एक उदाहरण दिया गया है:
http://neilkemp.us/src/sse_tutorial/sse_tutorial.html

और यहाँ एक ट्यूटोरियल है कि आंतरिक निर्देशों के साथ SSE निर्देशों का उपयोग कैसे करें:
http://www.codeproject.com/KB/recipes/sseintro.aspx

C ++ के साथ SSE SIMD का उपयोग करने के लिए एक व्यावहारिक मार्गदर्शिका:
http://sci.tuomastonteri.fi/programming/sse/printable


उपयोगी जानकारी

इंटेल सी ++ आंतरिक संदर्भ (निर्देशों की सूची प्राप्त करने के लिए उपयोगी):
http://cache-www.intel.com/cd/00/00/34/76/347603_347603.pdf

SSE और SSE2 इंटेल और AMD प्रोसेसर (SSE और SIMD के सापेक्ष सभी प्रकार के लिए उपयोगी) द्वारा समर्थित उन्नत निर्देश सेट के लिए आंतरिक समर्थन:
http://msdn.microsoft.com/en-us/library/y0dd78ez%28v= vs.71% 29.aspx

SSE, SSE2, SSE3, SSSE3, SSE4, 3DNow आदि के बारे में समग्र निर्देश सूची और informations (विभिन्न खरीद आर्किटेक्चर के लिए SSE के विभिन्न संस्करण):
http://softpixel.com/~cwright/programp/simd/sse.php


यदि आप एक रेखीय बीजगणित रूपरेखा पसंद करते हैं, जिसे मैंने Eigen के बारे में बताया है:
http://eigen.tuxfamily.org/
http://eigen.tuxfamily.org/index.php?title=FAQ#Vectorization (SIMD समर्थन के बारे में)

और अंत में अगर आपको C ++ SIMD फ्रेमवर्क के बारे में अधिक जवाब चाहिए, तो यहां एक StackOverflow लिंक है । (C ++ SSE SIMD फ्रेमवर्क):
/programming/4953121/c-sse-simd-framework


धन्यवाद, लेकिन मेरे पास इतना नियमित करने का समय नहीं है।
11'11

शायद अगली बार, यह इतना कठिन नहीं है कि यह जैसा दिखता है;)। हालाँकि मैंने नीचे कुछ लिंक जोड़े हैं जो मदद कर सकते हैं।
वलकेआ

नीट का जवाब। SIMD गणित मजेदार है। मुझे वे दिन याद हैं जब मैं एसएसई का उपयोग किरण-निर्धारण में तेजी लाने के लिए कर रहा था। लेकिन छोटा खिलौना क्यों खेलना है, अगर हमारे पास अभी GPGPU है :)
नोटाबिन

3

इन दोनों वेक्टर / मैट्रिक्स-लिबास ने SSE2 कोड को अनुकूलित किया है, Sony में PowerPC संकलित स्विच के लिए Altivec भी है:

  1. सोनी के वीरकर्मथ SSE2 और Altivec

  2. बुलेट का लीनियरमैथ SSE2


1
दोनों लिंक मर चुके हैं।
vexe

1

थोड़ी सी कोचिंग से मुझे लगता है कि आप बुलेट की गणित लाइब्रेरी का उपयोग कर सकते हैं, बुलेट अपने आप में एक ओपनसोर्स भौतिकी इंजन है और इसके पास एक शक्तिशाली गणित पुस्तकालय है। यहाँ लिंक डाउनलोड करने के लिए एक शॉर्टकट है http://sourceforge.net/projects/bullet/files/SIMD%20and%20amp_%20Vector%20Math%20library/simd%20math%20and%20and%20vector%20.01ath/simdvectormath.tg /डाउनलोड


मैंने इसे देखा था, लेकिन इसे कैसे संकलित किया जाए, मुझे समझ में नहीं आया
मई'11

3
केवल एक डाउनलोड लिंक को डंप करने के बजाय, शायद प्रलेखन, विकी और एपीआई संदर्भ के साथ वास्तविक वेबसाइट का लिंक अधिक उपयोगी हो सकता है। bulletphysics.org
बॉब सोमर

@ याकूब मैं बस उस डाउनलोड लिंक को व्यक्त करना चाहता था क्योंकि उसे simdvectormathबुलेट फ़ाइलों में कुछ समय लगता है
Ali1S232


0

AMD का ओपन सोर्स SSEPlus प्रोजेक्ट है, हालाँकि मैंने कभी इसका उपयोग नहीं किया है इसलिए मैं इसकी गुणवत्ता या प्रयोज्यता पर टिप्पणी नहीं कर सकता।


0

जबकि वास्तव में SIMD के उपयोग पर ध्यान केंद्रित नहीं किया गया है, मुझे glm लगता है एक बहुत अच्छा सामान्य प्रयोजन गणित पुस्तकालय है जब यह खेल के लिए आता है। यह मनमाने ढंग से मैट्रिस और पसंद का समर्थन नहीं करता है, लेकिन इसमें 3D ग्राफिक्स के साथ उपयोग की जाने वाली सुविधाओं को सुव्यवस्थित किया गया है और इसमें SSE के साथ-साथ सामान्य एल्गोरिदम के कुछ तेज़ कार्यान्वयन को सक्षम करने की विशेषताएं हैं।

जबकि यह विशेष रूप से ओपनजीएल के साथ उपयोग करने के लिए डिज़ाइन किया गया है, मैंने इसे विभिन्न कार्यों के लिए बहुत उपयोगी पाया है। यह ऑपरेटर ओवरलोडिंग का भारी उपयोग करता है जो इसे उपयोग करने वाले कोड का उपयोग करना और बनाए रखना बहुत आसान बनाता है।

यह OpenGL GLSL लैंग्वेज पर आधारित है, जिसमें बहुत ही ठोस डॉक्यूमेंटेशन हैं, और किसी भी अंतर को अच्छी तरह से डॉक्यूमेंट किया गया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.