2012-09-30 18 views
7

मैं अपने एप्लिकेशन के फ्लॉप्स की गणना कैसे कर सकता हूं? यदि मेरे पास निष्पादित निर्देशों की कुल संख्या है, तो मैं इसे निष्पादन समय से विभाजित कर सकता हूं। लेकिन, निष्पादित निर्देशों की संख्या को कैसे गिनना है?फ़्लॉप की गणना (फ़्लोटिंग-पॉइंट ऑपरेशंस प्रति सेकेंड)

मेरा प्रश्न सामान्य है और किसी भी भाषा के लिए उत्तर अत्यधिक सराहना की जाती है। लेकिन मैं अपने आवेदन के लिए एक समाधान ढूंढ रहा हूं जिसे सी/सी ++ और सीयूडीए द्वारा विकसित किया गया है।

मुझे नहीं पता कि टैग उचित हैं या नहीं, कृपया मुझे सही करें अगर मैं गलत हूं।

+0

[कर्नेल के Gflops की गणना कैसे करें] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/7875607/how-to-calculate-gflops-of-a- कर्नेल) – talonmies

+0

मुझे उस प्रश्न से अवगत है! मेरा सवाल सामान्य है। फ्लॉप की गणना कैसे करें? यहां तक ​​कि बहु-कोर। जवाब मेरे मामले 'CUDA' में भी मदद कर सकता है। – ahmad

+3

मैंने पोस्ट किया है कि कैसे एनवीआईडीआईए उपकरण का उपयोग एफएलओपी को इकट्ठा करने के लिए किया जा सकता है [उपलब्ध बैंडविड्थ और फ्लॉप्स की गणना ...] (http://stackoverflow.com/questions/12539300/calculating-achieved-bandwidth-and-flops-gflops-and -evaluate-CUDA-कर्नेल-कामकाज)। X86 के लिए एफएलओपी की गणना के लिए कई लिनक्स पुस्तकालय हैं। X86 प्रदर्शन मॉनिटर एफएलओपी की गिनती का समर्थन करता है लेकिन आपको विनिर्देशों को समझने के लिए मैनुअल को पढ़ना होगा (सट्टा निर्देश, क्या गिना जाता है, ...) –

उत्तर

7

यदि मैं फ़्लोटिंग पॉइंट ऑपरेशंस की संख्या आसानी से मॉडलिंग नहीं कर पाती हूं तो दो निष्पादन योग्य उत्पाद तैयार करना होता है: एक जो उत्पादन संस्करण है और मुझे निष्पादन का समय देता है, और एक वाद्य यंत्र जो उन्हें करने के दौरान सभी फ़्लोटिंग पॉइंट ऑपरेशंस की गणना करता है (निश्चित रूप से यह धीमा हो जाएगा, लेकिन इससे हमारे उद्देश्य के लिए कोई फर्क नहीं पड़ता)। फिर मैं पहले निष्पादन योग्य द्वारा दूसरे निष्पादन योग्य से फ़्लोटिंग पॉइंट ऑप्स की संख्या को विभाजित करके FLOP/s मान की गणना कर सकता हूं।

यह शायद स्वचालित भी हो सकता है, लेकिन मुझे अब तक इसकी आवश्यकता नहीं है।

6

आपको गणितीय रूप से मॉडल करना चाहिए जो आपके डेटा के साथ किया गया है। एक पाश पुनरावृत्ति अलग करें। फिर सभी साधारण फ़्लोटिंग-पॉइंट एडिशंस, गुणा, डिवीजन इत्यादि गिनें। उदाहरण के लिए, y = x * 2 * (y + z*w) 4 फ़्लोटिंग-पॉइंट ऑपरेशंस है। परिणामी संख्या को पुनरावृत्तियों की संख्या से गुणा करें। नतीजा आपके द्वारा खोजे जा रहे निर्देशों की संख्या होगी।

+0

सुसंगत नियंत्रण-प्रवाह और निर्धारिती शाखाओं के लिए अच्छा है। यह इनपुट-निर्भर सशर्त शाखाओं के साथ कोड में लागू नहीं है (गतिशील रन-टाइम निर्धारित करता है कि कितने एफपी प्रदर्शन किए जाते हैं)। – ahmad

+0

क्या आप सशर्त बयान को अनदेखा करते हैं जैसे कि (i MySchizoBuddy

संबंधित मुद्दे