https://hackage.haskell.org/package/ghc-prim-0.4.0.0/docs/GHC-Prim.html#g:28 का उपयोग कर हास्केल में सिम-आधारित वेक्टर लाइब्रेरी लिखना संभव है लेकिन क्या इसका कोई अर्थ होगा? मैं हास्केल में स्वचालित सिम अनुकूलन के लिए समर्पित कई कागजात में आया हूं, लेकिन वर्तमान स्थिति (2014) क्या है? जैसे https://hackage.haskell.org/package/vector सिमड का उपयोग करेगा या निम्न स्तर के सिमड प्राइमेटिव का उपयोग करके मैन्युअल रूप से अनुकूलित लाइब्रेरी लिखना बेहतर होगा?क्या हास्केल स्वचालित रूप से सिम अनुकूलन perfom करता है?
उत्तर
फिलहाल इस समय ghc में कोई ऑटो वेक्टरेशन wrt सिमड नहीं है। कोई भी
वर्तमान सिमड प्राइमॉप्स मूल कोड जेन के साथ उपयोग किए जाने पर एक जीएचसी आतंक ट्रिगर करेगा, हालांकि वे -fllvm बैकएंड के साथ काम करेंगे।
उन सिमड प्राइमों में महत्वपूर्ण रूप से डेटा शफलिंग के लिए एक अच्छा डेटा मॉडल नहीं है, वर्तमान डेटा मॉडल को सिमड शफल को सही तरीके से समर्थन देने के लिए एक बहुत ही महत्वपूर्ण पुनर्विक्रय की आवश्यकता होगी।
LLVM बैकएंड मई कोड पर कुछ ऑटो vectorization अनुकूलन करते हैं, लेकिन मैं आम तौर पर कैसे कोड अनुकूलित हो जाता है में एक कोर धारणा एक बोनस के बजाय ऑटो vectorization का इलाज करना चाहते हैं, यह मान्य करने के लिए कुछ सावधान लेखा परीक्षा की आवश्यकता है!
पहला: मुझे नहीं पता था कि जीएचसी के पास भी सिम के लिए प्राइमप्स थे। अच्छा लगता है!
वैसे भी, कि एक तरफ, मेरी समझ यह है:
- GHC देशी codegen बैकएंड सब अपने आप में SIMD निर्देश फेंकना कभी नहीं होगा।
- वैकल्पिक एलएलवीएम बैकएंड सिम का उत्पादन कर सकता है, मुझे नहीं पता। लेकिन यह डिफ़ॉल्ट संकलन मार्ग नहीं है; मेरी समझ यह अभी भी प्रयोगात्मक है।
- आपके द्वारा उल्लेख किए गए प्राइमों के अस्तित्व को देखते हुए, वेक्टर लाइब्रेरी अनुमानतः सिम कोड उत्पन्न कर सकती है। मुझे संदेह है कि यह नहीं है, लेकिन वास्तव में निश्चित रूप से जानने के लिए एकमात्र तरीका लेखक से पूछना है या सिर्फ स्रोत कोड grep ...
- यदि आप कुछ विशिष्ट चाहते हैं, तो यह स्वयं को कोड करने के लिए बिल्कुल उचित लगता है । मुझे नहीं पता कि यह कितना काम करेगा ...
- 1. जीएचसी हास्केल में स्वचालित रूप से ज्ञापन कब होता है?
- 2. क्या MATLAB पूंछ कॉल अनुकूलन करता है?
- 3. क्या foreach स्वचालित रूप से निपटान कॉल करता है?
- 4. क्या अलामोफ़ीयर कुकीज़ को स्वचालित रूप से स्टोर करता है?
- 5. क्या पेपरक्लिप स्वचालित रूप से फ़ाइल नाम साफ़ करता है?
- 6. क्या SQLLulkCopy स्वचालित रूप से एक लेनदेन शुरू करता है?
- 7. स्वचालित XValue अनुकूलन
- 8. अनुकूलन हास्केल कोड
- 9. कौन से मॉड्यूल स्वचालित रूप से Node.js 'आवश्यकता' करता है?
- 10. क्या विनाशक स्वचालित रूप से
- 11. क्या MySQL अनुक्रमणिका स्वचालित कुंजी कॉलम स्वचालित रूप से करता है?
- 12. क्या Mercurial स्वचालित रूप से $ Id $ को परिवर्तित करता है जो सबवर्सन करता है?
- 13. क्या फ्रीज पूंछ कॉल अनुकूलन करता है?
- 14. कर्ल स्वचालित रूप से परिणाम प्रदर्शित करता है?
- 15. सेलेरीबीट स्वचालित रूप से आवधिक कार्य को अक्षम करता है
- 16. _adjustContentOffsetIfNecessary - UIScrollView स्वचालित रूप से शीर्ष पर स्क्रॉल करता है
- 17. क्या एएसपीनेट बंडलर स्वचालित रूप से फ़ाइलों को छोटा करता है?
- 18. NSThread स्वचालित रूप से अब autoreleasepool पैदा करता है?
- 19. एक्सकोड स्वचालित रूप से टिप्पणियां उत्पन्न करता है?
- 20. स्वचालित रूप से
- 21. getLine1Number() दोहरी सिम फोन के साथ वापस क्या करता है?
- 22. स्वचालित रूप से व्यवस्थापक
- 23. NH12ern85 स्वचालित रूप से
- 24. स्वचालित रूप से VisualVM
- 25. स्वचालित रूप से सी
- 26. क्या गिट रीयर स्वचालित रूप से फ़ाइलों को हल करने के रूप में चिह्नित करता है?
- 27. स्वचालित रूप से pathforResource
- 28. स्वचालित रूप से RSpec
- 29. .NET JIT कंपाइलर स्वचालित वेक्टरलाइज़ेशन किस स्थिति में करता है?
- 30. स्वचालित रूप से JTable
एक शाखा है: https://github.com/haskell/vector/tree/simd लेकिन यह कुछ वर्षों में काम नहीं किया गया है। – cchalmers
उन सिमड ऑपरेशंस में से कोई भी अपने स्रोत कोड में 'Data.Vector' द्वारा उपयोग नहीं किया जाता है। –
संबंधित: http://stackoverflow.com/questions/1452309/generate-vector-code-from-haskell?rq=1 – Daenyth