ব্যাংক সংঘাত কী? (চুদা / ওপেনসিএল প্রোগ্রামিং করা)


96

আমি চুদা এবং ওপেনসিএল-এর জন্য প্রোগ্রামিং গাইডটি পড়ছি এবং ব্যাংকের দ্বন্দ্ব কী তা বুঝতে পারি না। তারা কেবল বিষয়টিতে নিজের বিবরণ না দিয়ে কীভাবে সমস্যা সমাধান করবেন সে সম্পর্কে ডুব দিয়েছিলেন। কেউ আমাকে বুঝতে এটি সাহায্য করতে পারে? সাহায্যটি সিইউডিএ / ওপেনসিএল বা কম্পিউটার বিজ্ঞানে সাধারণভাবে কেবল ব্যাংক দ্বন্দ্বের প্রসঙ্গে থাকলে আমার কোনও পছন্দ নেই।

উত্তর:


106

এনভিডিয়া (এবং সেই বিষয়ে amd) জিপাসের জন্য স্থানীয় স্মৃতি মেমরিব্যাঙ্কগুলিতে বিভক্ত। প্রতিটি ব্যাংক একবারে একটি করে ডেটাसेटকে সম্বোধন করতে পারে, সুতরাং যদি অর্ধবৃত্ত একই ব্যাঙ্ক থেকে / একই ডেটাতে ডেটা লোড / সঞ্চয় করার চেষ্টা করে তবে অ্যাক্সেসটিকে সিরিয়ালাইজ করতে হবে (এটি একটি ব্যাংকের দ্বন্দ্ব)। Gt200 gpus এর জন্য ১ banks টি ব্যাংক (ফার্মির জন্য 32 ব্যাংক), এএমডি জিপাসের জন্য 16 বা 32 টি ব্যাংক রয়েছে (57xx বা উচ্চতর: 32, নীচে সমস্ত কিছুই: 16%), যা 32 বিটের গ্রানুইটি দিয়ে বিভক্ত (তাই বাইট 0-3 এর মধ্যে রয়েছে) ব্যাংক 1, 4-7 ব্যাংকের 2, ..., ব্যাঙ্ক 1-তে 64-69 এবং আরও কিছু)। আরও ভাল দর্শন জন্য এটি মূলত:

Bank    |      1      |      2      |      3      |...
Address |  0  1  2  3 |  4  5  6  7 |  8  9 10 11 |...
Address | 64 65 66 67 | 68 69 70 71 | 72 73 74 75 |...
...

সুতরাং যদি অর্ধেক জলের প্রতিটি থ্রেড ক্রমাগত 32 বিট মানগুলিতে অ্যাক্সেস করে তবে কোনও ব্যাঙ্ক বিরোধ নেই। এই নিয়ম থেকে একটি ব্যতিক্রম (প্রতিটি থ্রেড তার নিজস্ব ব্যাঙ্ক অ্যাক্সেস করতে হবে) সম্প্রচারিত হয়: সমস্ত থ্রেড একই ঠিকানা অ্যাক্সেস করা হলে, মানটি একবারে পঠিত হয় এবং সমস্ত থ্রেডে সম্প্রচারিত হয় (জিটি 200 এর জন্য এটি অর্ধেকটি প্রবেশাধিকারের সমস্ত থ্রেড হতে হবে একই ঠিকানা, আইরিক ফার্মি এবং এএমডি জিপাস একই মান অ্যাক্সেসের যে কোনও সংখ্যক থ্রেডের জন্য এটি করতে পারে)।


4
দৃশ্য এবং ব্যাখ্যাটির জন্য মিষ্টি ধন্যবাদ। আমি সম্প্রচার সম্পর্কে জানতাম না এবং এটি তথ্যের একটি গুরুত্বপূর্ণ অংশের মতো মনে হয় :) আমার লোড এবং স্টোরগুলি ভাগ করে নেওয়া মেমরিতে ব্যাংকের দ্বন্দ্ব সৃষ্টি করে না তা যাচাই করে কীভাবে যাব? আমাকে কি একরকমভাবে সমাবেশ কোডে পৌঁছতে হবে বা অন্য কোনও উপায় আছে?
চোরাচালানযুক্ত

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

4
ওয়ার্প সিরিয়ালাইজগুলি নির্দেশ করার জন্য ধন্যবাদ। গণনা প্রোফাইলারের সাথে আসা একটি রিডমে টেক্সট ফাইল এটি বলেছিল
স্মাগলপ্যাঙ্ককেস

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

4
আমি যেমন বলেছি যে ব্যাংকগুলিতে ঠিকানাগুলি থেকে ম্যাপিং তুলনামূলকভাবে সহজ, তাই কোন অ্যাক্সেসগুলি কোন ব্যাঙ্কে যায় এবং তাই যদি ব্যাংকের দ্বন্দ্ব থাকে তবে তা নির্ধারণ করা খুব কঠিন নয়। কাগজটি কেবলমাত্র আরও সংঘাতের অ্যাক্সেসের নিদর্শনগুলির জন্য, যেখানে আমি এটি ছাড়া না করতে পারি।
গ্রিজলি

13

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


সুতরাং এটি যখন অর্ধ পাটা মেমরি সঞ্চয় বা লোড করতে চায় এর সাথে সম্পর্কিত? ১ threads টি থ্রেড কোনও মেমোরি লেনদেন করার চেষ্টা করবে এবং এভাবে একাধিক থ্রেড সহ একই ব্যাঙ্কে অ্যাক্সেস করা সিরিয়ালাইজড প্রসেসিংয়ের কারণ? এছাড়াও, কেউ কীভাবে নিশ্চিত করে যে আপনার একই ব্যাঙ্কের ডেটা সংরক্ষণ বা লোড হচ্ছে না?
চোরাচালানযুক্ত

10

সহজ কথায়, কোনও বিরোধী মন্ত্রীর অ্যাক্সেস প্যাটার্ন মেমরি সিস্টেমে উপলব্ধ ব্যাঙ্কগুলিতে আইও বিতরণ করতে ব্যর্থ হয় এমন ক্ষেত্রে ব্যাংক সংঘাত একটি মামলা। নিম্নলিখিত উদাহরণগুলি ধারণাটি বিস্তারিতভাবে বর্ণনা করে:

ধরা যাক আমাদের দুটি মাত্রিক 512x512 অ্যারেজ রয়েছে এবং আমাদের ডিআরএএম বা মেমরি সিস্টেমটিতে এতে 512 ব্যাংক রয়েছে। ডিফল্টরূপে অ্যারের ডেটা এমনভাবে বিন্যাস করা হবে যা তীর [0] [0] ব্যাঙ্ক 0 এ যায়, আরার [0] [1] ব্যাঙ্ক 1 তে যায়, আরার [0] [2] ব্যাঙ্ক 2 তে যায় .... আরার [0] [511] 511 ব্যাঙ্কে যায় ar এখন কিছু কোড (নীচে দেখানো হয়েছে) কলাম মেজর ফ্যাশন অর্থাৎ ডেটা অ্যাক্সেস করা শুরু করে। y ধ্রুবক বজায় রাখার সময় এক্স পরিবর্তন করা, তারপরে শেষ ফলাফলটি হবে যে সমস্ত ক্রমাগত মেমরি অ্যাক্সেস একই ব্যাঙ্ককে আঘাত করবে - তাই ব্যাঙ্ক বিরোধ।

int arr[512][512];
  for ( j = 0; j < 512; j++ ) // outer loop
    for ( i = 0; i < 512; i++ ) // inner loop
       arr[i][j] = 2 * arr[i][j]; // column major processing

এ জাতীয় সমস্যাগুলি সাধারণত অ্যারে বাফার করে বা অ্যারেতে মৌলিক সংখ্যক উপাদান ব্যবহার করে সংকলকগুলি এড়ানো যায়।


8

(চুদা ব্যাংক সংঘাত) আমি আশা করি এটি সাহায্য করবে .. এটি খুব ভাল ব্যাখ্যা ...

http://www.youtube.com/watch?v=CZgM3DEBplE


4
নোট করুন যে কেবলমাত্র লিঙ্ক-উত্তরগুলি নিরুৎসাহিত করা হয়েছে, এসও উত্তরগুলি সমাধানের সন্ধানের শেষ পয়েন্ট হওয়া উচিত (বনাম। রেফারেন্সগুলির মধ্যে আরও একটি স্টপওভার, যা সময়ের সাথে সাথে বাসি হয়ে যায়)। রেফারেন্স হিসাবে লিঙ্কটি রেখে, দয়া করে এখানে একটি একা একাই সংক্ষিপ্তসার বিবেচনা করুন।
ক্লেওপাত্র

ওপিকে আরও সহায়তা করার জন্য দয়া করে লিঙ্কটি বিস্তারিতভাবে বর্ণনা করুন।
পিটার ফোটি

4
এই ভিডিওটি সত্যিই সহায়ক! আমি জানি না কেন ডাউন ভোট! এটি একটি খুব ভাল ইনপুট! +1
গ্যাব্রিয়েল

1

http://en.wikedia.org/wiki/Memory_bank
এবং http://mprc.pku.cn/mentors/training/ISCAreading/1989/p380-weiss/p380-weiss.pdf

এই পৃষ্ঠা থেকে, আপনি মেমরি ব্যাংক সম্পর্কে বিশদটি পেতে পারেন। তবে এটি গ্রিজলি যা বলেছে তার থেকে কিছুটা আলাদা। এই পৃষ্ঠায়, ব্যাঙ্কটি এর মতো

ব্যাংক 1 2 3

ঠিকানা | 0, 3, 6 ... | | 1, 4, 7 ... | | 2, 5,8 ... |

আশা করি এটি সাহায্য করবে

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