বিভিন্ন ক্যাশে এবং প্রধান মেমরি অ্যাক্সেস করতে আনুমানিক ব্যয়?


178

L1, L2 এবং L3 ক্যাশে, পাশাপাশি ইন্টেল আই 7 প্রসেসরের প্রধান মেমরির অ্যাক্সেসের জন্য কেউ কি আমাকে আনুমানিক সময় (ন্যানোসেকেন্ডে) দিতে পারেন?

যদিও এটি কোনও প্রোগ্রামিংয়ের প্রশ্ন নয় তবে এই ধরণের গতির বিবরণ জানা কিছু কম-বিলম্বিত প্রোগ্রামিং চ্যালেঞ্জের জন্য প্রয়োজনীয়।



1
আমি কীভাবে এনএসকে চক্রগুলিতে রূপান্তর করব? আমি যদি 100 এনএসকে কেবল 2.3 গিগাহার্টজ দ্বারা বিভক্ত করি তবে আমি 230 চক্র পাই। এটা কি সঠিক?
নাথান

5
আমি কৌতূহলী: কোন অবস্থাতে দূরবর্তী ডিআরএএম এর চেয়ে দূরবর্তী এল 3 ক্যাশেটি ধীর? উপরের সংখ্যাটি ইঙ্গিত দেয় যে এটি 1.6x হিসাবে ধীর হতে পারে।
নেটভোপ

1
দয়া করে প্রশ্নটি সম্পাদনা করবেন না পরিবর্তে এই বিবরণগুলির সাথে একটি উত্তর পোস্ট করুন। স্ব-উত্তর দেওয়া ঠিক আছে O
স্টিজন ডি উইট

প্রতিটি স্তর থেকে মেমরি অ্যাক্সেসের জন্য শক্তি ব্যবহারের জন্য কোনও আনুমানিক মান আছে?
কান্না

উত্তর:


74

প্রসেসরের আই 7 এবং জিওন রেঞ্জের জন্য এখানে পারফরম্যান্স অ্যানালাইসিস গাইড রয়েছে । আমার জোর দেওয়া উচিত, এটিতে আপনার যা প্রয়োজন তা আরও রয়েছে (উদাহরণস্বরূপ, কিছু সময় এবং চক্রের জন্য পৃষ্ঠা 22 দেখুন)।

অতিরিক্তভাবে, এই পৃষ্ঠাতে ঘড়ির চক্র ইত্যাদি সম্পর্কে কিছু বিশদ রয়েছে দ্বিতীয় লিঙ্কে নিম্নলিখিত সংখ্যাগুলি সরবরাহ করা হয়েছে:

Core i7 Xeon 5500 Series Data Source Latency (approximate)               [Pg. 22]

local  L1 CACHE hit,                              ~4 cycles (   2.1 -  1.2 ns )
local  L2 CACHE hit,                             ~10 cycles (   5.3 -  3.0 ns )
local  L3 CACHE hit, line unshared               ~40 cycles (  21.4 - 12.0 ns )
local  L3 CACHE hit, shared line in another core ~65 cycles (  34.8 - 19.5 ns )
local  L3 CACHE hit, modified in another core    ~75 cycles (  40.2 - 22.5 ns )

remote L3 CACHE (Ref: Fig.1 [Pg. 5])        ~100-300 cycles ( 160.7 - 30.0 ns )

local  DRAM                                                   ~60 ns
remote DRAM                                                  ~100 ns

EDIT2:
সর্বাধিক গুরুত্বপূর্ণ হল উদ্ধৃত টেবিলের নীচে নোটিশটি বলা হচ্ছে:

"দ্রষ্টব্য: এই মানগুলি প্রচুর পরিমাণে অনুমোদন করে THE তারা প্রকৃত ও অস্পষ্টতা, স্মৃতি গতি, বায়োস সেটিং, সংখ্যা সংখ্যা , ইটিসি, ইত্যাদিতে নির্ভর করে ILE আপনার মাইলেজের সম্ভাবনা রয়েছে AR "

সম্পাদনা: আমার হাইলাইট করা উচিত, পাশাপাশি সময় / চক্র তথ্য, উপরের ইনটেল ডকুমেন্টটি প্রসেসরের আই 7 এবং জিওন পরিসীমা (পারফরম্যান্সের দৃষ্টিকোণ থেকে) এর আরও অনেকগুলি (অত্যন্ত) দরকারী বিশদ সম্বোধন করে।


1
'লাইন শেয়ারড' এর 'অন্য কোনও কোরে ভাগ করা লাইন' এর চেয়ে বেশি বিলম্ব হওয়া উচিত নয় - একটি ভাগ করা লাইন (যেমন 2 কোর বৈধ বিট) মানে এটি পরিষ্কার হওয়ার গ্যারান্টিযুক্ত হওয়ায় এটি সরাসরি এলএলসি স্লাইস থেকে নেওয়া যেতে পারে। 'লাইন ভাগমুক্ত' অর্থ একটাই কোর বৈধ বিট এবং সেই কোর করা হয়েছে তা নিশ্চিত করার জন্য লাইন একচেটিয়া এবং পরিবর্তন করা ভেদ - যদি তারপর মডিফাই এটি ভাগ পরিবর্তিত হয় হয়; এলএলসি এখন নোংরা হয়ে যায় এবং ভাগ করে নেওয়া হিসাবে এটি অনুরোধ কোরটিতে ফিরে আসে। সম্ভবত আমি ভুল - আমি জানি MOESI প্রোটোকলটি আলাদা।
লুইস কেলসি

1
অবশ্যই এটি স্নিব এবং হাসওয়েলের ক্ষেত্রে। নেহালেম - যা এই শিওন ব্যবহার করে - এটি রিং বাস টপোলজির আগে ছিল এবং একটি ইউনিফাইড ক্যাশে ছিল তবে আমি দেখছি না কেন স্নুপ ফিল্টার নেহালেমে অন্যরকম আচরণ করবে। অপ্টিমাইজেশান ম্যানুয়াল বিভাগ B.3.5.3 দেয় যা আমার মত মনে হচ্ছে এটি একটি ভুল বর্ণনা (এটি স্পষ্টভাবে নেহালেমের সাথে সম্পর্কিত কারণ এটি গ্লোবাল ক্যু যা একটি নেহালেম বৈশিষ্ট্য সম্পর্কে কথা বলে)। এই হাসওয়েল পেপারটির আরও ভাল বিবরণ রয়েছে (পৃষ্ঠার উপরের ডান কলাম) ( tu-dresden.de/zih/forschung/ressourcen/dateien/… )
লুইস কেলসি

@ লুইসকেলসি: এটি আমার জন্যও আশ্চর্যজনক, কারণ আমি ভেবেছিলাম অন্তর্ভুক্ত এল 3 এর অর্ধেক পয়েন্টটি ছিল যে এল 3 এর কোনও লাইনের বৈধ অনুলিপি থাকলে কেবল উত্তর দিতে পারে। তবে মনে রাখবেন, ইনটেল MESIF (ব্যবহার en.wikipedia.org/wiki/MESIF_protocol ফলে NUMA জন্য) এএমডির MOESI ব্যবহার করে। আমি মনে করি একটি একক সকেটের মধ্যে, যদিও, এমইএসআইএফ আসলে কোনও জিনিস নয় কারণ ডেটা এল 3 থেকে আসে, মূল-> মূল নয়। সুতরাং এটি সম্ভবত সকেট জুড়ে L3 ক্যাশে-> ক্যাশে স্থানান্তরকরণের জন্য আরও প্রাসঙ্গিক। আমি ভাবছি যদি এই "স্থানীয় এল 3 হিট" অন্য সকেটের কোরের সাথে ভাগ করা কোনও লাইনের জন্য হয়? তবুও বোঝা যায় না, এল 3-তে বৈধ হওয়ার অর্থ কোনও কোর ই / এম নেই
পিটার

@ পিটারকর্ডস আমি এই মন্তব্যটির কথা স্মরণ করে ফিরে এসেছি এবং আমি যা বলেছিলাম তা তত্ক্ষণাত আমার ভুল হয়ে গেছে। আমার মন্তব্যটি একটি তৃতীয় কোরের দৃষ্টিকোণে সঠিক যেখানে এটি 2 টি অন্য কোরের মধ্যে ভাগ করা হয়েছে বা কেবল অন্য একটি কোরের সাথে একচেটিয়া। তবে আপনি যদি লাইনটি শেয়ারড ভাগ না করার কথা বলছেন এবং এটি লাইনটি অ্যাক্সেস করার চেষ্টা করছে এমন কোরটির সাথে সম্পর্কিত, তবে বেঞ্চমার্কটি সঠিক কারণ ভাগ করার জন্য এটির জন্য একচেটিয়া এবং একচেটিয়া উপায় পেতে কোনও আরএফও প্রয়োজন নেই। সুতরাং আমি জানি না আমি কী বলছিলাম।
লুইস কেলসি

@ লুইসকেলসি: হ্যাঁ, লেখার ক্ষেত্রে এটি সত্য। আমি ভেবেছিলাম এটি পড়ার জন্য (ডেটা সোর্স লেটেন্সি), যা আরও বিলম্ব-সংবেদনশীল। একটি লাইন পড়ার জন্য কখনই আরএফও প্রয়োজন হয় না, কেবল ভাগ করে নেওয়ার অনুরোধ request সুতরাং ইতিমধ্যে কোথাও ভাগ করা অবস্থায় থাকা কোনও লাইনটি কি এই সংকেতটির ট্র্যাফিকের জন্য অপেক্ষা না করে এই সকেটের এল 3-এ আঘাত করা উচিত? এবং এইভাবে ডিআরএএম এর চেয়ে দ্রুত হবে, "ভাগ না করা" এল 3 হিটের সমান।
পিটার

189

নাম্বার প্রত্যেকের জানা উচিত

           0.5 ns - CPU L1 dCACHE reference
           1   ns - speed-of-light (a photon) travel a 1 ft (30.5cm) distance
           5   ns - CPU L1 iCACHE Branch mispredict
           7   ns - CPU L2  CACHE reference
          71   ns - CPU cross-QPI/NUMA best  case on XEON E5-46*
         100   ns - MUTEX lock/unlock
         100   ns - own DDR MEMORY reference
         135   ns - CPU cross-QPI/NUMA best  case on XEON E7-*
         202   ns - CPU cross-QPI/NUMA worst case on XEON E7-*
         325   ns - CPU cross-QPI/NUMA worst case on XEON E5-46*
      10,000   ns - Compress 1K bytes with Zippy PROCESS
      20,000   ns - Send 2K bytes over 1 Gbps NETWORK
     250,000   ns - Read 1 MB sequentially from MEMORY
     500,000   ns - Round trip within a same DataCenter
  10,000,000   ns - DISK seek
  10,000,000   ns - Read 1 MB sequentially from NETWORK
  30,000,000   ns - Read 1 MB sequentially from DISK
 150,000,000   ns - Send a NETWORK packet CA -> Netherlands
|   |   |   |
|   |   | ns|
|   | us|
| ms|

থেকে: মূলত পিটার নরভিগ লিখেছেন:
- http://norvig.com/21-days.html#answers
- http://surana.wordpress.com/2009/01/01/numbers-everyone-should-know/ ,
- http://sites.google.com/site/io/building-scalable-web-applications-with-google-app-engine

একটি চাক্ষুষ তুলনা


11
প্রসেসরের ডিজাইন, র‌্যাম লেটেন্সি / ফ্রিকোয়েন্সি, হার্ড ডিস্ক ক্যাশিং (উভয় প্রকার এবং আকার) / আরপিএম ইত্যাদির উপর ভিত্তি করে এই যত্নগুলি খুব বিশাল পরিমাণে? ইনটেলের উদ্ধৃতি দিতে (যে মানগুলির জন্য তারা একটি নির্দিষ্ট সিপিইউতে প্রকাশ করেছে): "দ্রষ্টব্য: এই মানগুলি মোটামুটি অনুমানের They । "
ডেভ

28
@ ডেভ এটি সত্য, তবে এই সংখ্যাগুলি আকারের ক্রম দেখায়
আন্দ্রে

8
@ ডেভ, যদিও সিপু-র টাইপ / গতি / আর্কিটেকচারটি আলাদা, আমি বিশ্বাস করি যে আপেক্ষিক সময়সীমা মোটামুটি একই রকম হওয়া উচিত, সুতরাং আপনার কোডটি কোড করার সময় এটি কেবল একটি সঠিক গাইডলাইন। আরও অর্থবহ বিশ্লেষণ অবশ্যই প্রোফাইলারের মাধ্যমে করা উচিত ...
xosp7tom

8
এটি কতটা সময় নিয়ে আসে তার ধারণার জন্য, উইকিপিডিয়া উল্লেখ করেছে "এক ন্যানোসেকেন্ডটি এক সেকেন্ড হিসাবে ৩১..7 বছর।" en.wikedia.org/wiki/Nanosecond
কেবল আপনি

1
@ কার্নেল যদি ক্যাশে মিস থাকে তবে এর অর্থ এটি নিম্ন স্তরের ক্যাশে এমনকি মূল মেমরির অ্যাক্সেসের প্রয়োজন। এক্ষেত্রে সেই স্তরটি অ্যাক্সেসের সময় অনুযায়ী সময় লাগবে। আপনি এখানে নতুন সিপিইউগুলির জন্য ডেটা সন্ধান করতে পারেন sisoftware.net/?d=qa&f=ben_mem_latency
আন্দ্রে

39

একটি সুন্দর পৃষ্ঠায় বিভিন্ন স্মৃতি অ্যাক্সেস খরচ

সারসংক্ষেপ

  1. মান হ্রাস পেয়েছে তবে 2005 সাল থেকে স্থিতিশীল রয়েছে

            1 ns        L1 cache
            3 ns        Branch mispredict
            4 ns        L2 cache
           17 ns        Mutex lock/unlock
          100 ns        Main memory (RAM)
        2 000 ns (2µs)  1KB Zippy-compress
    
  2. এখনও কিছু উন্নতি, 2020 এর পূর্বাভাস

       16 000 ns (16µs) SSD random read (olibre's note: should be less)
      500 000 ns (½ms)  Round trip in datacenter
    2 000 000 ns (2ms)  HDD random read (seek)
    

অন্যান্য উত্সগুলিও দেখুন

আরো দেখুন

আরও বুঝতে জন্য, আমি চমৎকার সুপারিশ আধুনিক ক্যাশে আর্কিটেকচারের উপস্থাপনা (জুন 2014) থেকে গেরহার্ড Wellein , Hannes Hofmann এবং Dietmar এ Feyবিশ্ববিদ্যালয়ের Erlangen-Nürnberg

ফরাসী ভাষী লোকেরা স্পেসফক্সের একটি প্রবন্ধকে একজন বিকাশকারী সাথে প্রসেসরের সাথে তুলনা করে উভয়ই কাজ চালিয়ে যাওয়ার জন্য প্রয়োজনীয় তথ্যের জন্য অপেক্ষা করার প্রশংসা করতে পারে ।


একটি সুন্দর বিলম্বিত পোস্ট। জিপিইউ-লেটেন্সি মাস্কিং
রিয়্যালিটি

হাই @ user3666197 আপনার কি জিপিইউ সম্পর্কিত মেমরি ল্যাটেন্সি সম্পর্কে কিছু উত্স আছে? চিয়ার্স :-)
অলিবরে

অবশ্যই, হ্যাঁ, @ লিবিরে। [A]নীচে পোস্ট চেক করুন ।
ব্যবহারকারী3666197

1
এটি কীভাবে বিলম্বিতা এবং ক্যাশিংয়ের বিষয়ে রয়েছে তা প্রদত্ত, আমি এটি বিদ্রূপজনক মনে করি যে বছরটি পরিবর্তন করার সময় আপনার প্রথম লিঙ্কের পৃষ্ঠাটি, বছর স্লাইডারের সাথে মেট্রিক প্রদর্শনকে ক্যাশে করে না। ফায়ারফক্সে, কমপক্ষে, তারা মসৃণ হওয়ার জন্য বছরের পর বছর ধরে টানার জন্য খুব ধীরে ধীরে রেন্ডার করে: /
জন গ্লাসমিয়ার

1
ভাল রেফারেন্স, আপনি শিরোনাম এবং লেখক দিয়েছেন!
স্যামবি

21

2020 এর জন্য ভবিষ্যদ্বাণীগুলির 2020 এর পর্যালোচনা কেবলমাত্র:

ইন্টিগ্রেটেড সার্কিট প্রযুক্তির গত প্রায় 44 বছর ধরে, শাস্ত্রীয় (নন-কোয়ান্টাম) প্রসেসরগুলি বিকশিত হয়েছিল, আক্ষরিক এবং শারীরিকভাবে "প্রতি Aspera ad Astra" হিসাবে । গত দশকটি প্রমাণ করেছে, শাস্ত্রীয় প্রক্রিয়াটি কিছু প্রতিবন্ধকতার কাছাকাছি পৌঁছেছে, যেগুলির সামনে কোনও অর্জনযোগ্য শারীরিক পথ নেই।

Number of logical coresবাড়তে পারে এবং বাড়তে পারে, তবে পদার্থবিদ্যার উপর ভিত্তি করে সিলিং ছড়িয়ে দেওয়া অসম্ভব না হলে এর চেয়ে বেশি শক্ত হয়ে উঠতে পারে এবং বাড়তে পারে, তার চেয়ে কম (বিদ্যুত, শব্দ, "ঘড়ি") বাড়তে পারে, তবুও বিদ্যুৎ বিতরণ ও তাপ অপচয় নিয়ে সমস্যা বড় ক্যাশে-পদচিহ্নগুলির সরাসরি সুবিধা এবং দ্রুত এবং প্রশস্ত মেমরি- I / O এবং অপ্রত্যক্ষ সুবিধার কম প্রায়ই সিস্টেমের বাধ্যতামূলক প্রসঙ্গ-স্যুইচিং থেকে অপ্রত্যক্ষ সুবিধা বৃদ্ধি পেতে পারে কারণ আমাদের মধ্যে অন্যান্য থ্রেড / প্রক্রিয়াগুলি বিভক্ত করার জন্য আরও বেশি কোর থাকতে পারেO(n^2~3)
Frequency [MHz]
Transistor CountO(n^2~3)
Power [W]
Single Thread Perf

ক্রেডিটগুলি লিওনার্দো সুরিয়ানো এবং কার্ল রুপের কাছে যায়
(ক্রেডিটগুলি লিওনার্দো সুরিয়ানো এবং কার্ল রুপের কাছে যায়)

2020: Still some improvements, prediction for 2025
-------------------------------------------------------------------------
             0.1 ns - NOP
             0.3 ns - XOR, ADD, SUB
             0.5 ns - CPU L1 dCACHE reference           (1st introduced in late 80-ies )
             0.9 ns - JMP SHORT
             1   ns - speed-of-light (a photon) travel a 1 ft (30.5cm) distance -- will stay, throughout any foreseeable future :o)
?~~~~~~~~~~~ 1   ns - MUL ( i**2 = MUL i, i )~~~~~~~~~ doing this 1,000 x is 1 [us]; 1,000,000 x is 1 [ms]; 1,000,000,000 x is 1 [s] ~~~~~~~~~~~~~~~~~~~~~~~~~
           3~4   ns - CPU L2  CACHE reference           (2020/Q1)
             5   ns - CPU L1 iCACHE Branch mispredict
             7   ns - CPU L2  CACHE reference
            10   ns - DIV
            19   ns - CPU L3  CACHE reference           (2020/Q1 considered slow on 28c Skylake)
            71   ns - CPU cross-QPI/NUMA best  case on XEON E5-46*
           100   ns - MUTEX lock/unlock
           100   ns - own DDR MEMORY reference
           135   ns - CPU cross-QPI/NUMA best  case on XEON E7-*
           202   ns - CPU cross-QPI/NUMA worst case on XEON E7-*
           325   ns - CPU cross-QPI/NUMA worst case on XEON E5-46*
|Q>~~~~~ 5,000   ns - QPU on-chip QUBO ( quantum annealer minimiser 1 Qop )
        10,000   ns - Compress 1K bytes with a Zippy PROCESS
        20,000   ns - Send     2K bytes over 1 Gbps  NETWORK
       250,000   ns - Read   1 MB sequentially from  MEMORY
       500,000   ns - Round trip within a same DataCenter
?~~~ 2,500,000   ns - Read  10 MB sequentially from  MEMORY~~(about an empty python process to copy on spawn)~~~~ x ( 1 + nProcesses ) on spawned process instantiation(s), yet an empty python interpreter is indeed not a real-world, production-grade use-case, is it?
    10,000,000   ns - DISK seek
    10,000,000   ns - Read   1 MB sequentially from  NETWORK
?~~ 25,000,000   ns - Read 100 MB sequentially from  MEMORY~~(somewhat light python process to copy on spawn)~~~~ x ( 1 + nProcesses ) on spawned process instantiation(s)
    30,000,000   ns - Read 1 MB sequentially from a  DISK
?~~ 36,000,000   ns - Pickle.dump() SER a 10 MB object for IPC-transfer and remote DES in spawned process~~~~~~~~ x ( 2 ) for a single 10MB parameter-payload SER/DES + add an IPC-transport costs thereof or NETWORK-grade transport costs, if going into [distributed-computing] model Cluster ecosystem
   150,000,000   ns - Send a NETWORK packet CA -> Netherlands
  |   |   |   |
  |   |   | ns|
  |   | us|
  | ms|

কেবলমাত্র ২০২০ এর পূর্বাভাসের জন্য 2015 এর পর্যালোচনা করার জন্য:

Still some improvements, prediction for 2020 (Ref. olibre's answer below)
-------------------------------------------------------------------------
   16 000 ns ( 16 µs) SSD random read (olibre's note: should be less)
  500 000 ns (  ½ ms) Round trip in datacenter
2 000 000 ns (  2 ms) HDD random read (seek)

In 2015 there are currently available:
========================================================================
      820 ns ( 0.8µs)     random read from a SSD-DataPlane
    1 200 ns ( 1.2µs) Round trip in datacenter
    1 200 ns ( 1.2µs)     random read from a HDD-DataPlane

কেবল সিপিইউ এবং জিপিইউ ল্যাটেন্সি ল্যান্ডস্কেপ তুলনা করার জন্য:

এমনকি সহজ সিপিইউ / ক্যাশে / ডিআরএএম লাইনআপগুলি (এমনকি একটি অভিন্ন মেমরি অ্যাক্সেস মডেলের মধ্যেও) তুলনা করা কোনও সহজ কাজ নয়, যেখানে ডিআআরএএম-গতি বিলম্বিতা নির্ধারণের একটি উপাদান এবং লোড ল্যাটেন্সি (স্যাচুরেটেড সিস্টেম), যেখানে পরেরটি নিয়ম করে এবং এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলি এমন একটি অলস পুরোপুরি লোড হওয়া সিস্টেমের চেয়ে বেশি অভিজ্ঞতা অর্জন করবে।

                    +----------------------------------- 5,6,7,8,9,..12,15,16 
                    |                               +--- 1066,1333,..2800..3300
                    v                               v
First  word = ( ( CAS latency * 2 ) + ( 1 - 1 ) ) / Data Rate  
Fourth word = ( ( CAS latency * 2 ) + ( 4 - 1 ) ) / Data Rate
Eighth word = ( ( CAS latency * 2 ) + ( 8 - 1 ) ) / Data Rate
                                        ^----------------------- 7x .. difference
******************************** 
So:
===

resulting DDR3-side latencies are between _____________
                                          3.03 ns    ^
                                                     |
                                         36.58 ns ___v_ based on DDR3 HW facts

ইউনিফর্ম মেমরি অ্যাক্সেস

জিপিইউ-ইঞ্জিনগুলি প্রচুর প্রযুক্তিগত বিপণন পেয়েছে, যখন গভীর অভ্যন্তরীণ নির্ভরতাগুলি বাস্তব শক্তিগুলি এবং বাস্তবে এই আর্কিটেকচারগুলির অভিজ্ঞতা আসল দুর্বলতাগুলি উভয়ই বোঝার মূল চাবিকাঠি (সাধারণত আক্রমণাত্মক বিপণন শিস-আপ প্রত্যাশার চেয়ে অনেক বেশি আলাদা)।

   1 ns _________ LETS SETUP A TIME/DISTANCE SCALE FIRST:
          °      ^
          |\     |a 1 ft-distance a foton travels in vacuum ( less in dark-fibre )
          | \    |
          |  \   |
        __|___\__v____________________________________________________
          |    |
          |<-->|  a 1 ns TimeDOMAIN "distance", before a foton arrived
          |    |
          ^    v 
    DATA  |    |DATA
    RQST'd|    |RECV'd ( DATA XFER/FETCH latency )

  25 ns @ 1147 MHz FERMI:  GPU Streaming Multiprocessor REGISTER access
  35 ns @ 1147 MHz FERMI:  GPU Streaming Multiprocessor    L1-onHit-[--8kB]CACHE

  70 ns @ 1147 MHz FERMI:  GPU Streaming Multiprocessor SHARED-MEM access

 230 ns @ 1147 MHz FERMI:  GPU Streaming Multiprocessor texL1-onHit-[--5kB]CACHE
 320 ns @ 1147 MHz FERMI:  GPU Streaming Multiprocessor texL2-onHit-[256kB]CACHE

 350 ns
 700 ns @ 1147 MHz FERMI:  GPU Streaming Multiprocessor GLOBAL-MEM access
 - - - - -

অভ্যন্তরীণতা বোঝা অন্য ক্ষেত্রের তুলনায়, যেখানে আর্কিটেকচার প্রকাশিত হয় এবং অগণিত বেঞ্চমার্ক অবাধে উপলব্ধ। জিপিইউ-মাইক্রো-পরীক্ষককে অনেক ধন্যবাদ, যারা ব্ল্যাক-বক্স পদ্ধতির অভ্যন্তরে পরীক্ষিত জিপিইউ ডিভাইসের অভ্যন্তরে কাজের বাস্তব পরিকল্পনার সত্য প্রকাশ করতে তাদের সময় এবং সৃজনশীলতা ব্যয় করেছেন।

    +====================| + 11-12 [usec] XFER-LATENCY-up   HostToDevice    ~~~ same as Intel X48 / nForce 790i
    |   |||||||||||||||||| + 10-11 [usec] XFER-LATENCY-down DeviceToHost
    |   |||||||||||||||||| ~  5.5 GB/sec XFER-BW-up                         ~~~ same as DDR2/DDR3 throughput
    |   |||||||||||||||||| ~  5.2 GB/sec XFER-BW-down @8192 KB TEST-LOAD      ( immune to attempts to OverClock PCIe_BUS_CLK 100-105-110-115 [MHz] ) [D:4.9.3]
    |                       
    |              Host-side
    |                                                        cudaHostRegister(   void *ptr, size_t size, unsigned int flags )
    |                                                                                                                 | +-------------- cudaHostRegisterPortable -- marks memory as PINNED MEMORY for all CUDA Contexts, not just the one, current, when the allocation was performed
    |                        ___HostAllocWriteCombined_MEM / cudaHostFree()                                           +---------------- cudaHostRegisterMapped   -- maps  memory allocation into the CUDA address space ( the Device pointer can be obtained by a call to cudaHostGetDevicePointer( void **pDevice, void *pHost, unsigned int flags=0 ); )
    |                        ___HostRegisterPORTABLE___MEM / cudaHostUnregister( void *ptr )
    |   ||||||||||||||||||
    |   ||||||||||||||||||
    |   | PCIe-2.0 ( 4x) | ~ 4 GB/s over  4-Lanes ( PORT #2  )
    |   | PCIe-2.0 ( 8x) | ~16 GB/s over  8-Lanes
    |   | PCIe-2.0 (16x) | ~32 GB/s over 16-Lanes ( mode 16x )
    |
    |   + PCIe-3.0 25-port 97-lanes non-blocking SwitchFabric ... +over copper/fiber
    |                                                                       ~~~ The latest PCIe specification, Gen 3, runs at 8Gbps per serial lane, enabling a 48-lane switch to handle a whopping 96 GBytes/sec. of full duplex peer to peer traffic. [I:]
    |
    | ~810 [ns]    + InRam-"Network" / many-to-many parallel CPU/Memory "message" passing with less than 810 ns latency any-to-any
    |
    |   ||||||||||||||||||
    |   ||||||||||||||||||
    +====================|
    |.pci............HOST|

"বড়-চিত্র" এর জন্য আমার ক্ষমা, তবে বিলম্ব-ডেমাস্কিংয়ের অন-চিপ স্ম্রিজি / এল 1 / এল 2-সক্ষমতা এবং হিট / মিস-হার থেকেও মূল সীমাবদ্ধতা রয়েছে।

    |.pci............GPU.|
    |                    | FERMI [GPU-CLK] ~ 0.9 [ns] but THE I/O LATENCIES                                                                  PAR -- ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| <800> warps ~~ 24000 + 3200 threads ~~ 27200 threads [!!]
    |                                                                                                                                               ^^^^^^^^|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [!!]
    |                                                       smREGs________________________________________ penalty +400 ~ +800 [GPU_CLKs] latency ( maskable by 400~800 WARPs ) on <Compile-time>-designed spillover(s) to locMEM__
    |                                                                                                              +350 ~ +700 [ns] @1147 MHz FERMI ^^^^^^^^
    |                                                                                                                          |                    ^^^^^^^^
    |                                                                                                                       +5 [ns] @ 200 MHz FPGA. . . . . . Xilinx/Zync Z7020/FPGA massive-parallel streamline-computing mode ev. PicoBlazer softCPU
    |                                                                                                                          |                    ^^^^^^^^
    |                                                                                                                   ~  +20 [ns] @1147 MHz FERMI ^^^^^^^^
    |                                                             SM-REGISTERs/thread: max  63 for CC-2.x -with only about +22 [GPU_CLKs] latency ( maskable by 22-WARPs ) to hide on [REGISTER DEPENDENCY] when arithmetic result is to be served from previous [INSTR] [G]:10.4, Page-46
    |                                                                                  max  63 for CC-3.0 -          about +11 [GPU_CLKs] latency ( maskable by 44-WARPs ) [B]:5.2.3, Page-73
    |                                                                                  max 128 for CC-1.x                                    PAR -- ||||||||~~~|
    |                                                                                  max 255 for CC-3.5                                    PAR -- ||||||||||||||||||~~~~~~|
    |
    |                                                       smREGs___BW                                 ANALYZE REAL USE-PATTERNs IN PTX-creation PHASE <<  -Xptxas -v          || nvcc -maxrregcount ( w|w/o spillover(s) )
    |                                                                with about 8.0  TB/s BW            [C:Pg.46]
    |                                                                           1.3  TB/s BW shaMEM___  4B * 32banks * 15 SMs * half 1.4GHz = 1.3 TB/s only on FERMI
    |                                                                           0.1  TB/s BW gloMEM___
    |         ________________________________________________________________________________________________________________________________________________________________________________________________________________________
    +========|   DEVICE:3 PERSISTENT                          gloMEM___
    |       _|______________________________________________________________________________________________________________________________________________________________________________________________________________________
    +======|   DEVICE:2 PERSISTENT                          gloMEM___
    |     _|______________________________________________________________________________________________________________________________________________________________________________________________________________________
    +====|   DEVICE:1 PERSISTENT                          gloMEM___
    |   _|______________________________________________________________________________________________________________________________________________________________________________________________________________________
    +==|   DEVICE:0 PERSISTENT                          gloMEM_____________________________________________________________________+440 [GPU_CLKs]_________________________________________________________________________|_GB|
    !  |                                                         |\                                                                +                                                                                           |
    o  |                                                texMEM___|_\___________________________________texMEM______________________+_______________________________________________________________________________________|_MB|
       |                                                         |\ \                                 |\                           +                                               |\                                          |
       |                                              texL2cache_| \ \                               .| \_ _ _ _ _ _ _ _texL2cache +370 [GPU_CLKs] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | \                                   256_KB|
       |                                                         |  \ \                               |  \                         +                                 |\            ^  \                                        |
       |                                                         |   \ \                              |   \                        +                                 | \           ^   \                                       |
       |                                                         |    \ \                             |    \                       +                                 |  \          ^    \                                      |
       |                                              texL1cache_|     \ \                           .|     \_ _ _ _ _ _texL1cache +260 [GPU_CLKs] _ _ _ _ _ _ _ _ _ |   \_ _ _ _ _^     \                                 5_KB|
       |                                                         |      \ \                           |      \                     +                         ^\      ^    \        ^\     \                                    |
       |                                     shaMEM + conL3cache_|       \ \                          |       \ _ _ _ _ conL3cache +220 [GPU_CLKs]           ^ \     ^     \       ^ \     \                              32_KB|
       |                                                         |        \ \                         |        \       ^\          +                         ^  \    ^      \      ^  \     \                                  |
       |                                                         |         \ \                        |         \      ^ \         +                         ^   \   ^       \     ^   \     \                                 |
       |                                   ______________________|__________\_\_______________________|__________\_____^__\________+__________________________________________\_________\_____\________________________________|
       |                  +220 [GPU-CLKs]_|           |_ _ _  ___|\          \ \_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ _ _ _ _\_ _ _ _+220 [GPU_CLKs] on re-use at some +50 GPU_CLKs _IF_ a FETCH from yet-in-shaL2cache
       | L2-on-re-use-only +80 [GPU-CLKs]_| 64 KB  L2_|_ _ _   __|\\          \ \_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \ _ _ _ _\_ _ _ + 80 [GPU_CLKs] on re-use from L1-cached (HIT) _IF_ a FETCH from yet-in-shaL1cache
       | L1-on-re-use-only +40 [GPU-CLKs]_|  8 KB  L1_|_ _ _    _|\\\          \_\__________________________________\________\_____+ 40 [GPU_CLKs]_____________________________________________________________________________|
       | L1-on-re-use-only + 8 [GPU-CLKs]_|  2 KB  L1_|__________|\\\\__________\_\__________________________________\________\____+  8 [GPU_CLKs]_________________________________________________________conL1cache      2_KB|
       |     on-chip|smREG +22 [GPU-CLKs]_|           |t[0_______^:~~~~~~~~~~~~~~~~\:________]
       |CC-  MAX    |_|_|_|_|_|_|_|_|_|_|_|           |t[1_______^                  :________]
       |2.x   63    |_|_|_|_|_|_|_|_|_|_|_|           |t[2_______^                  :________] 
       |1.x  128    |_|_|_|_|_|_|_|_|_|_|_|           |t[3_______^                  :________]
       |3.5  255 REGISTERs|_|_|_|_|_|_|_|_|           |t[4_______^                  :________]
       |         per|_|_|_|_|_|_|_|_|_|_|_|           |t[5_______^                  :________]
       |         Thread_|_|_|_|_|_|_|_|_|_|           |t[6_______^                  :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           |t[7_______^     1stHalf-WARP :________]______________
       |            |_|_|_|_|_|_|_|_|_|_|_|           |t[ 8_______^:~~~~~~~~~~~~~~~~~:________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           |t[ 9_______^                  :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           |t[ A_______^                  :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           |t[ B_______^                  :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           |t[ C_______^                  :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           |t[ D_______^                  :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           |t[ E_______^                  :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|       W0..|t[ F_______^____________WARP__:________]_____________
       |            |_|_|_|_|_|_|_|_|_|_|_|         ..............             
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[0_______^:~~~~~~~~~~~~~~~\:________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[1_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[2_______^                 :________] 
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[3_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[4_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[5_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[6_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[7_______^    1stHalf-WARP :________]______________
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[ 8_______^:~~~~~~~~~~~~~~~~:________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[ 9_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[ A_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[ B_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[ C_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[ D_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|           ............|t[ E_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|       W1..............|t[ F_______^___________WARP__:________]_____________
       |            |_|_|_|_|_|_|_|_|_|_|_|         ....................................................
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[0_______^:~~~~~~~~~~~~~~~\:________]
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[1_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[2_______^                 :________] 
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[3_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[4_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[5_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[6_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[7_______^    1stHalf-WARP :________]______________
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[ 8_______^:~~~~~~~~~~~~~~~~:________]
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[ 9_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[ A_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[ B_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[ C_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[ D_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|          ...................................................|t[ E_______^                 :________]
       |            |_|_|_|_|_|_|_|_|_|_|_|tBlock Wn....................................................|t[ F_______^___________WARP__:________]_____________
       |
       |                   ________________          °°°°°°°°°°°°°°°°°°°°°°°°°°~~~~~~~~~~°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
       |                  /                \   CC-2.0|||||||||||||||||||||||||| ~masked  ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
       |                 /                  \  1.hW  ^|^|^|^|^|^|^|^|^|^|^|^|^| <wait>-s ^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|
       |                /                    \ 2.hW  |^|^|^|^|^|^|^|^|^|^|^|^|^          |^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^|^
       |_______________/                      \______I|I|I|I|I|I|I|I|I|I|I|I|I|~~~~~~~~~~I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|
       |~~~~~~~~~~~~~~/ SM:0.warpScheduler    /~~~~~~~I~I~I~I~I~I~I~I~I~I~I~I~I~~~~~~~~~~~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I~I
       |              \          |           //
       |               \         RR-mode    //
       |                \    GREEDY-mode   //
       |                 \________________//
       |                   \______________/SM:0__________________________________________________________________________________
       |                                  |           |t[ F_______^___________WARP__:________]_______
       |                                ..|SM:1__________________________________________________________________________________
       |                                  |           |t[ F_______^___________WARP__:________]_______
       |                                ..|SM:2__________________________________________________________________________________
       |                                  |           |t[ F_______^___________WARP__:________]_______
       |                                ..|SM:3__________________________________________________________________________________
       |                                  |           |t[ F_______^___________WARP__:________]_______
       |                                ..|SM:4__________________________________________________________________________________
       |                                  |           |t[ F_______^___________WARP__:________]_______
       |                                ..|SM:5__________________________________________________________________________________
       |                                  |           |t[ F_______^___________WARP__:________]_______
       |                                ..|SM:6__________________________________________________________________________________
       |                                  |           |t[ F_______^___________WARP__:________]_______
       |                                ..|SM:7__________________________________________________________________________________
       |                                  |           |t[ F_______^___________WARP__:________]_______
       |                                ..|SM:8__________________________________________________________________________________
       |                                  |           |t[ F_______^___________WARP__:________]_______
       |                                ..|SM:9__________________________________________________________________________________
       |                                ..|SM:A      |t[ F_______^___________WARP__:________]_______
       |                                ..|SM:B      |t[ F_______^___________WARP__:________]_______
       |                                ..|SM:C      |t[ F_______^___________WARP__:________]_______
       |                                ..|SM:D      |t[ F_______^___________WARP__:________]_______
       |                                  |_______________________________________________________________________________________
       */

তলদেশের সরুরেখা?

যে কোনও কম-বিলম্বিত প্রেরণামূলক নকশাকে বরং "আই / ও-হাইড্রোলিকস" (যেমন 0 1-এক্সএফআইআরগুলি প্রকৃতির দ্বারা সংকোচনীয়) বিপরীত ইঞ্জিনিয়ারের তৈরি করতে হবে এবং ফলস্বরূপ বিলম্বগুলি যে কোনও জিপিপিইউ সমাধানের জন্য পারফরম্যান্স খামটি নিয়ন্ত্রন করে তা পড়ুন ( পড়ুন : যেখানে প্রসেসিংয়ের ব্যয়গুলি আরও দুর্বল লেটেন্সি এক্সএফইআরগুলি ক্ষমা করে দেয় ...) বা না ( পড়ুন : যেখানে (কারও অবাক হতে পারে) জিপিইউ কাপড়ের তুলনায় সিপিইউ-এস-এন্ড-এন্ড প্রসেসিংয়ে দ্রুততর হয় [উদ্ধৃতি উপলব্ধ]] )।


7
আমি আপনার উত্তর বুঝতে চেষ্টা করেছি। এটি খুব আকর্ষণীয় বলে মনে হচ্ছে তবে উচ্চ / প্রস্থের সীমাবদ্ধতার কারণে ASCII- গ্রাফগুলি পড়া সহজ নয়। দুঃখিত, আমি জানি না কীভাবে এটি উন্নতি হতে পারে ... অবশেষে আমি একটি সংক্ষিপ্ততা অনুপস্থিত (শেষে, আমি সিপিইউ বনাম জিপিইউ ল্যাটেন্সিগুলি সম্পর্কে কী ভাবব তা জানি না)। আশা করি আপনি ভাল উত্তর-ক্যান্ডি চেহারা এবং মানুষের বোধগম্যতার জন্য আপনার উত্তরটি উন্নত করতে পারেন। সাহস। চিয়ার্স :
ডি

3

এই "সিঁড়ি" প্লটটি দেখুন, বিভিন্ন অ্যাক্সেসের সময়টিকে পুরোপুরি চিত্রিত করে (ঘড়ির কৌশলগুলির ক্ষেত্রে)। লাল সিপিইউতে একটি অতিরিক্ত "পদক্ষেপ" রয়েছে তা লক্ষ্য করুন, সম্ভবত এটি এল 4 রয়েছে (অন্যরা না করে)।

বিভিন্ন মেমরি শ্রেণিবিন্যাস সহ অ্যাক্সেস বারের গ্রাফ

এই এক্সট্রিমটেক নিবন্ধ থেকে নেওয়া।

কম্পিউটার বিজ্ঞানে একে "I / O জটিলতা" বলা হয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.