मैं विजुअल स्टूडियो 2008 में और मैं के लिए विकल्प दिखाई परियोजना सेटिंग्स में काम कर रहा हूँ जो मैं कोई नहीं, SSE या SSE2सी ++ कोड लिखने के लिए कैसे संकलक सिम के लिए आसानी से अनुकूलित कर सकते हैं?
करने के लिए सेट कर सकते हैं "विस्तारित अनुदेश समुच्चय को सक्रिय" तो संकलक में एक साथ बैच निर्देश करने की कोशिश करेंगे सिम निर्देशों का उपयोग करने के लिए आदेश?
वहाँ रहे हैं किसी भी नियम कैसे कोड इस तरह के अनुकूलन करने के लिए है कि संकलक effiecient कोडांतरक इन एक्सटेंशन का उपयोग कर सकते हैं में से एक का पालन कर सकते हैं?
उदाहरण के लिए वर्तमान में मैं एक raytracer पर काम कर रहा हूँ। एक शेडर कुछ इनपुट लेता है और एक आउटपुट रंग, इस तरह इनपुट से गणना करता है:
PixelData data = RayTracer::gatherPixelData(pixel.x, pixel.y);
Color col = shadePixel(data);
यह उदाहरण के लिए shadercode ऐसी है कि वह एक अनुदेश कॉल के भीतर छाया 4 अलग पिक्सल होगा लिखने के लिए फायदेमंद हो सकता है? इस तरह कुछ:
PixelData data1 = RayTracer::gatherPixelData(pixel1.x, pixel1.y);
...
shadePixels(data1, data2, data3, data4, &col1out, &col2out, &col3out, &col4out);
एक साथ कई डेटा्यूनिट को संसाधित करने के लिए। क्या यह कंपाइलर एसएसई निर्देशों का उपयोग करने के लिए फायदेमंद होगा?
धन्यवाद!
ताकि वेक्टर निर्देशों का उपयोग करने के लिए असेंबली लिखना आवश्यक हो? – Mat
मुझे लगता है कि सुमा का मतलब इनमें से एक है: http://software.intel.com/en-us/articles/intel-compilers/ – mkb
@Mat - आप सिमड कोड लिखने के लिए कंपाइलर इंट्रिनिक्स का उपयोग कर सकते हैं। Http://msdn.microsoft.com/en-us/library/y0dh78ez%28VS.71%29.aspx – celion