This page was translated by the Cloud Translation API.
Switch to English

Optimize TensorFlow performance using the Profiler

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

প্রোফাইলিং আপনাকে আপনার মডেলের বিভিন্ন টেনসরফ্লো অপারেশনগুলির (সময় এবং স্মৃতি) বুঝতে এবং পারফরম্যান্সের বাধা সমাধান করতে এবং শেষ পর্যন্ত মডেলটিকে দ্রুত কার্যকর করতে সহায়তা করে helps

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

আপনি যদি ক্লাউড টিপিইউতে আপনার মডেল কর্মক্ষমতা প্রোফাইল করতে চান তবে ক্লাউড টিপিইউ নির্দেশিকাটি দেখুন

প্রোফাইলার এবং জিপিইউ পূর্বশর্তগুলি ইনস্টল করুন

গিটহাব সংগ্রহশালা থেকে ইনস্টল install_and_run.py স্ক্রিপ্টটি ডাউনলোড করে চালিয়ে প্রোফাইলার ইনস্টল করুন।

জিপিইউতে প্রোফাইল দেওয়ার জন্য আপনাকে অবশ্যই:

  1. CUDA® Toolkit 10.1 বা আরও নতুন ইনস্টল করুন । CUDA® Toolkit 10.1 কেবলমাত্র একক GPU প্রোফাইলিং সমর্থন করে। একাধিক GPU গুলি প্রোফাইল করতে, একাধিক GPU গুলি প্রোফাইল দেখুন। নিশ্চিত করুন যে আপনার ইনস্টলিত CUDA® ড্রাইভার সংস্করণটি লিনাক্সের জন্য কমপক্ষে 440.33 বা উইন্ডোজের জন্য 441.22 is
  2. নিশ্চিত করুন যে সিপটিটিআই পথে রয়েছে:
2 বি 5a8 বি 88c6

যদি আপনার পথে সিপটিটিআই না থাকে তবে এটির ইনস্টলেশন ডিরেক্টরিটি চালিয়ে environment $LD_LIBRARY_PATH এনভায়রনমেন্ট ভেরিয়েবলের জন্য প্রিন্ট করুন:

export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH

CUPTI লাইব্রেরিটি পাওয়া গেছে তা যাচাই করতে উপরে ldconfig কমান্ডটি আবার চালান।

প্রোফাইল একাধিক জিপিইউ

টেনসরফ্লো বর্তমানে কেবল একক হোস্ট সিস্টেমের জন্য একাধিক জিপিইউ প্রোফাইলিং সমর্থন করে। মাল্টি-হোস্ট সিস্টেমগুলির জন্য একাধিক GPU প্রোফাইলিং বর্তমানে সমর্থিত নয়। একাধিক GPU গুলি প্রোফাইলে CUDA® টুলকিট 10.2 বা তারপরে ইনস্টল করুন। যেহেতু টেনসরফ্লো কেবল 10.1 অবধি CUDA® Toolkit সংস্করণ সমর্থন করে, libcudart.so.10.1 এবং libcupti.so.10.1 প্রতীকী লিঙ্ক তৈরি করুন।

sudo ln -s /usr/local/cuda/lib64/libcudart.so.10.2 /usr/local/cuda/lib64/libcudart.so.10.1
sudo ln -s /usr/local/cuda/extras/CUPTI/lib64/libcupti.so.10.2 /usr/local/cuda/extras/CUPTI/lib64/libcupti.so.10.1

একাধিক কর্মী জিপিইউ কনফিগারেশন প্রোফাইল করতে, পৃথক কর্মীদের স্বাধীনভাবে প্রোফাইল দিন।

সুবিধার সমস্যাগুলি সমাধান করুন

আপনি যখন ডকার পরিবেশে বা লিনাক্সে CUDA® Toolkit 10.1 এর মাধ্যমে প্রোফাইলিং চালান, আপনি অপর্যাপ্ত CUPTI সুবিধাদি ( CUPTI_ERROR_INSUFFICIENT_PRIVILEGES ) সম্পর্কিত সমস্যাগুলির মুখোমুখি হতে পারেন। আপনি কীভাবে লিনাক্সে এই সমস্যাগুলি সমাধান করতে পারেন সে সম্পর্কে আরও জানতে এনভিআইডিআইএ বিকাশকারী ডক্স দেখুন।

ডকার পরিবেশে CUPTI সুবিধার সমস্যাগুলি সমাধান করতে, চালান

docker run option '--privileged=true'

প্রোফাইলার সরঞ্জাম

টেনসরবোর্ডের প্রোফাইল ট্যাব থেকে প্রোফাইলার অ্যাক্সেস করুন যা আপনি কিছু মডেল ডেটা ক্যাপচার করার পরে প্রদর্শিত হবে।

পারফরম্যান্স বিশ্লেষণে সহায়তার জন্য প্রোফাইলারের সরঞ্জামগুলির একটি নির্বাচন রয়েছে:

  • ওভারভিউ পৃষ্ঠা
  • ইনপুট পাইপলাইন বিশ্লেষক
  • টেনসরফ্লো পরিসংখ্যান
  • দর্শকের সন্ধান করুন
  • জিপিইউ কার্নেলের পরিসংখ্যান
  • মেমরি প্রোফাইল সরঞ্জাম

ওভারভিউ পৃষ্ঠা

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

নীচে ওভারভিউ পৃষ্ঠাটি ডেটা প্রদর্শন করে:

চিত্র

  • পারফরম্যান্সের সারাংশ - আপনার মডেল পারফরম্যান্সের একটি উচ্চ-স্তরের সংক্ষিপ্তসার প্রদর্শন করে। পারফরম্যান্সের সারাংশের দুটি অংশ রয়েছে:

    1. স্টেপ-টাইম ব্রেকডাউন - যেখানে সময় ব্যয় হয়েছে তার একাধিক বিভাগে গড় পদক্ষেপের সময়টি ভেঙে দেয়:

      • সংকলন - কার্নেলগুলি সংকলন করার জন্য সময় ব্যয় হয়েছিল
      • ইনপুট - সময় ইনপুট ডেটা পড়তে ব্যয় করেছে
      • আউটপুট - সময় আউটপুট ডেটা পড়তে ব্যয় করেছে
      • কার্নেল লঞ্চ - কার্নেলগুলি প্রবর্তন করতে হোস্টের দ্বারা ব্যয় করা সময়
      • গণনা সময় হোস্ট
      • ডিভাইস থেকে ডিভাইস যোগাযোগের সময়
      • অন ​​ডিভাইস গণনা সময়
      • পাইথন ওভারহেড সহ অন্য সকল
    2. ডিভাইস গণনা সূক্ষ্মতা - 16 এবং 32-বিট গণনা ব্যবহার করে এমন ডিভাইস গণনা সময়ের শতাংশের প্রতিবেদন করে

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

  • ডিভাইসে শীর্ষ 10 টেনসরফ্লো অপারেশন - অন-ডিভাইস অপগুলি প্রদর্শিত হয় যা দীর্ঘতম দৌড়েছিল।

    প্রতিটি সারিতে একটি অপের স্ব-সময় (সমস্ত অপস দ্বারা নেওয়া সময়ের শতাংশ হিসাবে), সংশ্লেষের সময়, বিভাগ এবং নাম প্রদর্শিত হয়।

  • রান পরিবেশ - মডেল চালানো পরিবেশের একটি উচ্চ-স্তরের সংক্ষিপ্তসার প্রদর্শন করে:

    • ব্যবহৃত হোস্টের সংখ্যা
    • ডিভাইসের ধরণ (জিপিইউ / টিপিইউ)
    • ডিভাইস কোরের সংখ্যা
  • পরবর্তী পদক্ষেপের জন্য প্রস্তাবনা - যখন কোনও মডেল ইনপুট আবদ্ধ থাকে এবং মডেল পারফরমেন্সের বাধাগুলি সনাক্ত করতে এবং সমাধান করতে আপনি যে সরঞ্জামগুলি ব্যবহার করতে পারেন তার প্রস্তাব দেয়

ইনপুট পাইপলাইন বিশ্লেষক

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

ফাইলগুলি থেকে রেকর্ড পড়ার জন্য একটি সাধারণ পাইপলাইনের নিম্নলিখিত ধাপগুলি রয়েছে:

  1. ফাইল রিডিং
  2. ফাইল প্রাকপ্রসেসিং (alচ্ছিক)
  3. হোস্ট থেকে ডিভাইসে ফাইল স্থানান্তর

একটি অদক্ষ ইনপুট পাইপলাইন আপনার অ্যাপ্লিকেশনটিকে মারাত্মকভাবে কমিয়ে দিতে পারে। কোনও অ্যাপ্লিকেশনটিকে ইনপুট আবদ্ধ হিসাবে বিবেচনা করা হয় যখন এটি ইনপুট পাইপলাইনে একটি উল্লেখযোগ্য সময় ব্যয় করে। ইনপুট পাইপলাইন বিশ্লেষক থেকে প্রাপ্ত অন্তর্দৃষ্টিগুলি কোথায় ইনপুট পাইপলাইন অক্ষম তা বুঝতে ব্যবহার করুন।

ইনপুট পাইপলাইন বিশ্লেষক আপনাকে তাত্ক্ষণিকভাবে জানায় যে আপনার প্রোগ্রামটি ইনপুট আবদ্ধ কিনা এবং ডিভাইস- এবং হোস্ট সাইড বিশ্লেষণের মাধ্যমে আপনাকে ইনপুট পাইপলাইনের কোনও পর্যায়ে ডিফগের পারফরম্যান্সের বাধা দিতে পারে।

আপনার ডেটা ইনপুট পাইপলাইনগুলি অনুকূল করে তোলার জন্য প্রস্তাবিত সেরা অনুশীলনের জন্য ইনপুট পাইপলাইন কার্য সম্পাদনের দিকনির্দেশ দেখুন See

ইনপুট পাইপলাইন ড্যাশবোর্ড

ইনপুট পাইপলাইন বিশ্লেষকটি খোলার জন্য, প্রোফাইল নির্বাচন করুন, তারপরে সরঞ্জামগুলি ড্রপডাউন থেকে ইনপুট_পাইপলাইন_নালেজার নির্বাচন করুন।

চিত্র

ড্যাশবোর্ডে তিনটি বিভাগ রয়েছে:

  1. সংক্ষিপ্তসার - আপনার অ্যাপ্লিকেশনটি ইনপুট সীমাবদ্ধ কিনা এবং যদি তা থাকে তবে কতটা দিয়ে সামগ্রিক ইনপুট পাইপলাইন সংক্ষিপ্তসার করে
  2. ডিভাইস-পার্শ্ব বিশ্লেষণ - প্রতিটি ধাপে কোর জুড়ে ইনপুট ডেটার জন্য অপেক্ষা করতে ব্যয় করা ডিভাইস স্টেপ-টাইম এবং ডিভাইস সময়ের পরিসর সহ বিশদ, ডিভাইস-পার্শ্ব বিশ্লেষণের ফলাফলগুলি প্রদর্শন করে including
  3. হোস্ট-পার্শ্ব বিশ্লেষণ - হোস্টের ইনপুট প্রসেসিংয়ের সময় ভাঙ্গন সহ হোস্ট পক্ষের উপর বিশদ বিশ্লেষণ দেখায়

পাইপলাইন সারাংশ ইনপুট

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

ডিভাইস পার্শ্ব বিশ্লেষণ

ডিভাইস পার্শ্ব বিশ্লেষণ হোস্টের তুলনায় ডিভাইসে ব্যয় করা সময় এবং হোস্টের কাছ থেকে ইনপুট ডেটার জন্য অপেক্ষা করতে কত ডিভাইস সময় ব্যয় হয়েছিল তার অন্তর্দৃষ্টি সরবরাহ করে।

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

হোস্ট সাইড বিশ্লেষণ

হোস্ট-সাইড অ্যানালাইসিস হোস্টকে বিভিন্ন বিভাগে ইনপুট প্রসেসিং সময় ( tf.data API tf.data এর জন্য ব্যয় করা সময়) tf.data দেয়:

  • চাহিদার ভিত্তিতে ফাইলগুলি থেকে ডেটা পড়া - ক্যাশিং, প্রিফেচিং এবং ইন্টারলিভিং ছাড়াই ফাইলগুলি থেকে ডেটা পড়তে ব্যয় করা সময়
  • আগাম ফাইলগুলি থেকে ডেটা পড়া - সময় ক্যাচিং, প্রিফেচিং এবং ইন্টারলিভিং সহ ফাইলগুলি পড়তে ব্যয় করে
  • ডেটা প্রিপ্রোসেসিং - প্রিপ্রোসেসিং অপ্সে ব্যয় করা সময় যেমন ইমেজ ডিকম্প্রেশন
  • ডিভাইসে স্থানান্তরিত করার জন্য ভীতি প্রদর্শন করছে - ডিভাইসে ডেটা স্থানান্তর করার আগে একটি ইনফিড সারিতে ডেটা লাগানোর জন্য সময় ব্যয় হয়েছিল

মৃত্যুর সময় দ্বারা পৃথক পৃথক ইনপুট অপস এবং তাদের বিভাগগুলির পরিসংখ্যানগুলি দেখতে ইনপুট ওপি পরিসংখ্যান প্রসারিত করুন।

চিত্র

নিম্নলিখিত তথ্য সম্বলিত প্রতিটি প্রবেশের সাথে একটি উত্স ডেটা টেবিল উপস্থিত হয়:

  1. ইনপুট ওপ - ইনপুট অপের টেনসরফ্লো অপের নাম দেখায়
  2. গণনা - প্রোফাইলের সময়কালে অপের প্রয়োগের মোট উদাহরণগুলির সংখ্যা দেখায়
  3. মোট সময় (এমএসে) - each দৃষ্টান্তগুলির প্রত্যেকটির জন্য ব্যয় করা সময়ের পরিমাণের সমষ্টি দেখায়
  4. মোট সময়%% - ইনপুট প্রক্রিয়াকরণে ব্যয় করা মোট সময়ের একটি অংশ হিসাবে একটি বিকল্পের জন্য ব্যয় করা মোট সময় দেখায়
  5. মোট স্ব-সময় (এমএসে) - সেই প্রতিটি দৃষ্টান্তের জন্য ব্যয় করা স্ব সময়ের সময়সংখ্যক যোগফল দেখায়। এখানে স্ব-সময়টি ফাংশনের দেহের অভ্যন্তরে কাটানো সময়কে মাপ দেয়, কল করে যে ফাংশনে ব্যয় করা সময় ব্যতীত।
  6. মোট স্ব-সময়% ইনপুট প্রসেসিংয়ে ব্যয় করা মোট সময়ের একটি অংশ হিসাবে মোট স্ব-সময় দেখায়
  7. বিভাগ । ইনপুট বিকল্পের প্রক্রিয়াকরণ বিভাগ দেখায়

টেনসরফ্লো পরিসংখ্যান

টেনসরফ্লো পরিসংখ্যান সরঞ্জামটি প্রতিটি টেনসরফ্লো অপ (অপ) এর কর্মক্ষমতা প্রদর্শন করে যা কোনও প্রোফাইল অধিবেশন চলাকালীন হোস্ট বা ডিভাইসে কার্যকর করা হয়।

চিত্র

সরঞ্জামটি দুটি প্যানে কর্মক্ষমতা সম্পর্কিত তথ্য প্রদর্শন করে:

  • উপরের ফলকটি চার পাই চার্ট পর্যন্ত প্রদর্শন করে:

    1. হোস্টে প্রতিটি অপের স্ব-সম্পাদনের সময় বিতরণ
    2. হোস্টে প্রতিটি অপ-টাইপের স্ব-সম্পাদনার সময় বিতরণ
    3. ডিভাইসে প্রতিটি অপের স্ব-সম্পাদনার সময় বিতরণ
    4. ডিভাইসে প্রতিটি অপ-টাইপের স্ব-সম্পাদনার সময় বিতরণ
  • নিম্ন ফলকটি একটি টেবিল দেখায় যা প্রতিটি অপের জন্য একটি সারি এবং প্রতিটি ধরণের ডেটার জন্য একটি কলাম (কলামের শিরোনামে ক্লিক করে কলামগুলি সারণি) সহ টেনসরফ্লো অপস সম্পর্কে ডেটা রিপোর্ট করে। সিএসভি ফাইল হিসাবে এই টেবিল থেকে ডেটা রফতানি করতে উপরের ফলকের ডানদিকে রেকর্ড হিসাবে সিএসভি বোতামটি ক্লিক করুন।

    মনে রাখবেন যে:

    • যদি কোনও অপ্সের চাইল্ড অপ্স থাকে:

      • কোনও অপের মোট "সঞ্চিত" সময়টিতে শিশু অপ্সের অভ্যন্তরে ব্যয় করা সময় অন্তর্ভুক্ত থাকে

      • কোনও অপের মোট "স্ব" সময় শিশু সন্তানের অভ্যন্তরে কাটানো সময়কে অন্তর্ভুক্ত করে না

    • যদি কোনও বিকল্প হোস্টের উপর কার্যকর করে:

      • অপারেটিং সিস্টেমের দ্বারা নেওয়া ডিভাইসে মোট স্ব-সময়ের শতাংশ 0 হবে be
      • ডিভাইস পর্যন্ত এবং এই অপটিকে সহ মোট স্ব-সময়ের সময়সংখ্যক সংখ্যা 0 হবে
    • যদি কোনও বিকল্প ডিভাইসে কার্যকর করে:

      • এই অপের দ্বারা গৃহীত হোস্টের মোট স্ব-সময়ের শতাংশ 0 হবে
      • হোস্ট অবধি এবং এই বিকল্পটি সহ মোট স্ব-সময়ের সময়সংখ্যক সংখ্যা 0 হবে

আপনি পাই চার্ট এবং সারণীতে অলস সময়কে অন্তর্ভুক্ত বা বাদ দেওয়ার জন্য চয়ন করতে পারেন।

দর্শকের সন্ধান করুন

ট্রেস ভিউয়ার এমন একটি টাইমলাইন প্রদর্শন করে যা দেখায়:

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

ট্রেস ভিউয়ার আপনাকে আপনার মডেলটিতে পারফরম্যান্সের সমস্যাগুলি সনাক্ত করতে দেয়, তারপরে সেগুলি সমাধানের পদক্ষেপ গ্রহণ করে। উদাহরণস্বরূপ, উচ্চ স্তরে আপনি ইনপুট বা মডেল প্রশিক্ষণ বেশিরভাগ সময় নিচ্ছেন কিনা তা সনাক্ত করতে পারেন। ড্রিলিং ডাউন, আপনি সনাক্ত করতে পারবেন কোন অপসটি কার্যকর করতে সবচেয়ে বেশি সময় নেয়। নোট করুন যে ট্রেস ভিউয়ার প্রতি ডিভাইস 1 মিলিয়ন ইভেন্টের মধ্যে সীমাবদ্ধ।

দর্শকের ইন্টারফেসটি ট্রেস করুন

আপনি যখন ট্রেস ভিউয়ারটি খুলেন, এটি আপনার সাম্প্রতিকতম রান প্রদর্শিত হবে:

চিত্র

এই স্ক্রিনে নিম্নলিখিত প্রধান উপাদান রয়েছে:

  1. টাইমলাইন ফলক - সময়ের সাথে সাথে ডিভাইস এবং হোস্টকে সম্পাদন করা অপশনগুলি দেখায়
  2. বিশদ ফলক - টাইমলাইন ফলকে নির্বাচিত বিকল্পগুলির জন্য অতিরিক্ত তথ্য দেখায়

টাইমলাইন ফলকে নিম্নলিখিত উপাদানগুলি রয়েছে:

  1. শীর্ষ বার - বিভিন্ন সহায়ক নিয়ন্ত্রণ রয়েছে
  2. সময় অক্ষ - ট্রেস শুরুর তুলনায় সময় দেখায়
  3. বিভাগ এবং ট্র্যাক লেবেল - প্রতিটি বিভাগে একাধিক ট্র্যাক রয়েছে এবং বামে একটি ত্রিভুজ রয়েছে যা আপনি বিভাগটি প্রসারণ এবং সঙ্কুচিত করতে ক্লিক করতে পারেন। সিস্টেমে প্রতিটি প্রক্রিয়াজাতকরণ উপাদানগুলির জন্য একটি বিভাগ রয়েছে
  4. সরঞ্জাম নির্বাচনকারী - ট্রেস ভিউয়ার যেমন জুম, প্যান, সিলেক্ট এবং টাইমিংয়ের সাথে ইন্টারেক্ট করার জন্য বিভিন্ন সরঞ্জাম রয়েছে। সময়ের ব্যবধান চিহ্নিত করতে সময় সরঞ্জামটি ব্যবহার করুন।
  5. ইভেন্টগুলি - এগুলি কোনও সময় কার্যকর করা হয়েছিল এমন সময় বা মেটা-ইভেন্টগুলির সময়কাল যেমন প্রশিক্ষণের পদক্ষেপগুলি দেখায়
বিভাগ এবং ট্র্যাক

ট্রেস ভিউয়ারের নিম্নলিখিত বিভাগগুলি রয়েছে:

  • প্রতিটি ডিভাইস নোডের জন্য একটি বিভাগ , ডিভাইস চিপের সংখ্যা এবং চিপের মধ্যে থাকা ডিভাইস নোড সহ লেবেলযুক্ত (উদাহরণস্বরূপ, /device:GPU:0 (pid 0) )। প্রতিটি ডিভাইস নোড বিভাগে নিম্নলিখিত ট্র্যাক থাকে:
    • পদক্ষেপ - ডিভাইসে চলমান প্রশিক্ষণ পদক্ষেপগুলির সময়কাল দেখায়
    • টেনসরফ্লো অপ্স - । ডিভাইসে সম্পাদিত অপ্স দেখায়
    • এক্সএলএ অপস - এক্সএলএ অপারেশনস (অপ্স) দেখায় যা ডিভাইসে চালিত হয় যদি এক্সএলএ ব্যবহৃত সংকলক হয় (প্রতিটি টেনসরফ্লো অপটি এক বা একাধিক এক্সএলএ অপ্সে অনুবাদিত হয়। এক্সএলএ সংকলকটি এক্সএলএএস অপ্সকে ডিভাইসে চলমান কোডে অনুবাদ করে)।
  • হোস্ট মেশিনের সিপিইউতে চলমান থ্রেডগুলির একটি বিভাগ, "হোস্ট থ্রেডস" লেবেলযুক্ত। বিভাগে প্রতিটি সিপিইউ থ্রেডের জন্য একটি ট্র্যাক থাকে। নোট করুন যে আপনি বিভাগের লেবেলের পাশাপাশি প্রদর্শিত তথ্য উপেক্ষা করতে পারেন।
ইভেন্টগুলি

সময়রেখার মধ্যে ইভেন্টগুলি বিভিন্ন রঙে প্রদর্শিত হয়; রঙগুলির নিজস্ব কোনও নির্দিষ্ট অর্থ নেই।

ট্রেস ভিউয়ার আপনার টেনসরফ্লো প্রোগ্রামে পাইথন ফাংশন কলগুলির ট্রেসও প্রদর্শন করতে পারে। আপনি যদি tf.profiler.experimental.start() API ব্যবহার করেন তবে ProfilerOptions শুরু করার সময় আপনি ProfilerOptions নেমটুপল ব্যবহার করে পাইথন ট্রেসিং সক্ষম করতে পারবেন। বিকল্প হিসাবে, আপনি যদি প্রোফাইলিংয়ের জন্য স্যাম্পলিং মোড ব্যবহার করেন তবে ক্যাপচার প্রোফাইল ডায়ালগের ড্রপডাউন বিকল্পগুলি ব্যবহার করে আপনি ট্রেসিংয়ের স্তরটি নির্বাচন করতে পারেন।

চিত্র

জিপিইউ কার্নেলের পরিসংখ্যান

এই সরঞ্জামটি পারফরম্যান্সের পরিসংখ্যান এবং প্রতিটি জিপিইউ ত্বরিত কার্নেলের জন্য উত্সপ্রাপ্ত অপশন দেখায়।

চিত্র

সরঞ্জামটি দুটি প্যানে তথ্য প্রদর্শন করে:

  • উপরের ফলকে একটি পাই চার্ট প্রদর্শিত হয় যা সিউডিএ কার্নেলগুলি দেখায় যা সর্বমোট সময় ব্যয় করে

  • নিম্ন ফলকটি প্রতিটি অনন্য কার্নেল-অপশন জোড়ার জন্য নিম্নলিখিত ডেটা সহ একটি সারণী প্রদর্শন করে:

    • কার্নেল-ওপেন জুটি দ্বারা গোষ্ঠীভূত মোট বিচ্ছুরিত জিপিইউ সময়কালের অবতরণ ক্রমের একটি র‌্যাঙ্ক
    • আরম্ভ করা কার্নেলের নাম
    • কার্নেল দ্বারা ব্যবহৃত জিপিইউ নিবন্ধের সংখ্যা
    • বাইটে ব্যবহৃত মোট ভাগ ভাগযুক্ত (স্ট্যাটিক + ডায়নামিক শেয়ার্ড) মেমরি
    • blockDim.x, blockDim.y, blockDim.z হিসাবে blockDim.x, blockDim.y, blockDim.z ব্লকের মাত্রা
    • গ্রিডের মাত্রা gridDim.x, gridDim.y, gridDim.z হিসাবে প্রকাশিত
    • অপশনটি টেনসরকারগুলি ব্যবহারের জন্য যোগ্য কিনা Whether
    • কার্নেলের মধ্যে টেনসোর কোর নির্দেশ রয়েছে কিনা
    • এই কার্নেলটি চালু করে এমন অপের নাম
    • এই কার্নেল-অপশন জোড়ার সংখ্যার সংখ্যা
    • মাইক্রোসেকেন্ডে মোট বিচ্ছিন্ন জিপিইউ সময়
    • মাইক্রোসেকেন্ডে গড় ব্যয়িত জিপিইউ সময়
    • মাইক্রোসেকেন্ডগুলিতে সর্বনিম্ন সময় অতিবাহিত জিপিইউ সময়
    • মাইক্রোসেকেন্ডে সর্বাধিক বিস্তৃত জিপিইউ সময়

মেমরি প্রোফাইল সরঞ্জাম

মেমরি প্রোফাইল সরঞ্জামটি প্রোফাইলের বিরতিতে আপনার ডিভাইসের মেমরির ব্যবহার নিরীক্ষণ করে। আপনি এই সরঞ্জামটি এতে ব্যবহার করতে পারেন:

  • পেন মেমোরির ব্যবহার এবং টেনসরফ্লো অপ্সগুলিতে সংশ্লিষ্ট মেমরির বরাদ্দকে পিনপয়েন্ট করে মেমরি (OOM) সমস্যাগুলি থেকে সরিয়ে আনা। আপনি বহু-প্রজাস্বত্বের অনুক্রম চালানোর সময় উত্থাপিত OOM ইস্যুগুলিও ডিবাগ করতে পারেন
  • মেমরি বিভাজন সমস্যা ডিবাগ

মেমরি প্রোফাইল সরঞ্জামটি তিনটি বিভাগে ডেটা প্রদর্শন করে:

  1. মেমরি প্রোফাইলের সংক্ষিপ্তসার
  2. মেমরি টাইমলাইন গ্রাফ
  3. মেমরি ব্রেকডাউন টেবিল

মেমরির প্রোফাইলের সংক্ষিপ্তসার

এই বিভাগটি আপনার টেনসরফ্লো প্রোগ্রামের মেমরি প্রোফাইলের একটি উচ্চ-স্তরের সংক্ষিপ্তসারটি নীচের মত দেখায়:

মেমরি প্রোফাইলের সারাংশের ছয়টি ক্ষেত্র রয়েছে:

  1. মেমরি আইডি - ড্রপডাউন যা উপলব্ধ সমস্ত ডিভাইস মেমরি সিস্টেমকে তালিকাভুক্ত করে। ড্রপডাউন থেকে আপনি যে মেমরি সিস্টেমটি দেখতে চান তা নির্বাচন করুন
  2. # অ্যালোকেশন - প্রোফাইলের বিরতিতে মেমরির বরাদ্দ সংখ্যা
  3. # ডেলিওকেশন - প্রোফাইলের বিরতিতে মেমরি বিলোপের সংখ্যা
  4. মেমরির ক্ষমতা - আপনি নির্বাচিত মেমরি সিস্টেমের মোট ক্ষমতা (জিআইবিএস)
  5. পিক হিপ ইউজেজ - মডেলটি চালানো শুরু হওয়ার পর থেকে পিক মেমরির ব্যবহার (জিআইবিগুলিতে)
  6. পিক মেমরির ব্যবহার - প্রোফাইলের ব্যবধানে শিখর মেমরির ব্যবহার (জিআইবিগুলিতে)। এই ক্ষেত্রটিতে নিম্নলিখিত উপ-ক্ষেত্রগুলি রয়েছে:
    1. টাইমস্ট্যাম্প - সময়রেখা গ্রাফে যখন পিক মেমরির ব্যবহার ঘটেছিল তার টাইমস্ট্যাম্প
    2. স্ট্যাক রিজার্ভেশন - স্ট্যাকের জন্য সংরক্ষিত মেমরির পরিমাণ (জিআইবিতে)
    3. গাদা বরাদ্দ - স্তূপে বরাদ্দ মেমরির পরিমাণ (জিআইবিতে)
    4. ফ্রি মেমোরি - ফ্রি মেমরির পরিমাণ (জিআইবিতে)। মেমরি ক্যাপাসিটি হ'ল স্ট্যাক রিজার্ভেশন, হিপ এলোকেশন এবং ফ্রি মেমোরির মোট যোগফল
    5. বিভাজন - খণ্ডের শতাংশ (কম ভাল) এটি শতাংশ হিসাবে গণনা করা হয় (1 - ফ্রি মেমরির বৃহত্তম অংশ / মোট ফ্রি মেমরির আকার)

স্মৃতি টাইমলাইন গ্রাফ

এই বিভাগটি মেমরির ব্যবহারের একটি প্লট (জিবিগুলিতে) এবং সময়ের বিপরীতে বিভাজনের শতাংশ (এমএসে) প্রদর্শন করে।

চিত্র

এক্স অক্ষগুলি প্রোফাইলিং অন্তরটির টাইমলাইন (এমএসে) উপস্থাপন করে। বাম দিকের Y- অক্ষগুলি মেমরির ব্যবহারকে উপস্থাপন করে (GiBs এ) এবং ডানদিকে Y- অক্ষটি খণ্ডের শতাংশকে উপস্থাপন করে। এক্স-অক্ষের প্রতিটি সময়ে সময়ে, মোট স্মৃতিটি তিন ভাগে বিভক্ত হয়: স্ট্যাক (লাল রঙে), গাদা (কমলাতে) এবং বিনামূল্যে (সবুজ রঙে)। নীচের মত ঠিক সেই মুহুর্তে মেমরি বরাদ্দ / ডিওলোকেশন ইভেন্টগুলি সম্পর্কে বিশদটি দেখতে একটি নির্দিষ্ট টাইমস্ট্যাম্পের উপরে ঘুরে দেখুন:

চিত্র

পপ-আপ উইন্ডো নিম্নলিখিত তথ্য প্রদর্শন করে:

  • টাইমস্ট্যাম্প (এমএস) - টাইমলাইনে নির্বাচিত ইভেন্টের অবস্থান
  • ইভেন্ট - ইভেন্টের ধরণ (বরাদ্দ বা বাতিলকরণ)
  • অনুরোধ_সাইজ (জিআইবি) - অনুরোধ করা মেমরির পরিমাণ। এটি হ্রাস অনুষ্ঠানের জন্য নেতিবাচক সংখ্যা হবে
  • বরাদ্দ_সাইজ (জিআইবি) - বরাদ্দ করা মেমরির আসল পরিমাণ। এটি হ্রাস অনুষ্ঠানের জন্য নেতিবাচক সংখ্যা হবে
  • tf_op - টেনসরফ্লো ওপ যা বরাদ্দ / অবলম্বনের জন্য অনুরোধ করে
  • পদক্ষেপ_এইড - প্রশিক্ষণ ধাপে এই ঘটনাটি ঘটেছে
  • অঞ্চল_প্রকার - এই বরাদ্দ মেমরির জন্য ডেটা সত্তা টাইপ। সম্ভাব্য মান হল temp temporaries জন্য, output সক্রিয়করণব্যবস্থা এবং গ্রেডিয়েন্ট জন্য, এবং persist / dynamic ওজন এবং ধ্রুবক জন্য
  • ডেটা_প্রকার - টেনসর উপাদান উপাদান (যেমন, 8-বিট স্বাক্ষরবিহীন পূর্ণসংখ্যার জন্য uint8)
  • টেনসর_শ্যাপি - টেনসারের আকার বরাদ্দ করা / বিলোপ করা হচ্ছে
  • মেমোরি_ইন_জ (জিআইবি) - এই মুহুর্তে ব্যবহৃত মোট স্মৃতি

স্মৃতি ভাঙ্গন টেবিল

এই টেবিলটি প্রোফাইলিং বিরতিতে পিক মেমরির ব্যবহারের পর্যায়ে সক্রিয় মেমরির বরাদ্দগুলি দেখায়।

চিত্র

প্রতিটি টেনসরফ্লো অপের জন্য একটি সারি রয়েছে এবং প্রতিটি সারিতে নিম্নলিখিত কলাম রয়েছে:

  • ওপ নাম - টেনসরফ্লো অপের নাম
  • বরাদ্দের আকার (GiBs) - এই বিকল্পটিতে মোট বরাদ্দ মেমরি
  • অনুরোধ করা আকার (GiBs) - এই অপের জন্য মোট অনুরোধ করা মেমরি
  • ঘটনা - এই বিকল্পের জন্য বরাদ্দ সংখ্যা
  • অঞ্চল প্রকার - ডেটা সত্তা টাইপ যার জন্য এই বরাদ্দ মেমরি। সম্ভাব্য মান হল temp temporaries জন্য, output সক্রিয়করণব্যবস্থা এবং গ্রেডিয়েন্ট জন্য, এবং persist / dynamic ওজন এবং ধ্রুবক জন্য
  • ডেটা টাইপ - টেনসর উপাদান টাইপ
  • আকার - বরাদ্দকৃত ট্যান্সারের আকার

পারফরম্যান্স ডেটা সংগ্রহ করুন

টেনসরফ্লো প্রোফাইলার আপনার টেনসরফ্লো মডেলের হোস্ট ক্রিয়াকলাপ এবং জিপিইউ ট্রেস সংগ্রহ করে। আপনি প্রোগ্রামার মোড বা স্যাম্পলিং মোডের মাধ্যমে পারফরম্যান্স ডেটা সংগ্রহ করতে প্রোফাইলারকে কনফিগার করতে পারেন।

প্রোফাইলিং এপিআই

প্রোফাইলিং সম্পাদনের জন্য আপনি নীচের API গুলি ব্যবহার করতে পারেন।

  • টেনসরবোর্ড কেরাস কলব্যাক ( tf.keras.callbacks.TensorBoard ) ব্যবহার করে প্রোগ্রাম্যাটিক মোড
# Profile from batches 10 to 15
tb_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir,
                                             profile_batch='10, 15')

# Train the model and use the TensorBoard Keras callback to collect
# performance profiling data
model.fit(train_data,
          steps_per_epoch=20,
          epochs=5,
          callbacks=[tb_callback])
  • tf.profiler ফাংশন API ব্যবহার করে প্রোগ্রাম্যাটিক মোড
tf.profiler.experimental.start('logdir')
# Train the model here
tf.profiler.experimental.stop()
  • প্রসঙ্গ পরিচালক ব্যবহার করে প্রোগ্রাম্যাটিক মোড
with tf.profiler.experimental.Profile('logdir'):
    # Train the model here
    pass
  • স্যাম্পলিং মোড - আপনার টেনসরফ্লো মডেল রান দিয়ে একটি জিআরপিসি সার্ভার শুরু করতে tf.profiler.experimental.server.start() ব্যবহার করে অন-ডিমান্ড প্রোফাইলিং সম্পাদন করুন। জিআরপিসি সার্ভারটি শুরু করার পরে এবং আপনার মডেলটি চালানোর পরে, আপনি টেনসরবোর্ড প্রোফাইল প্লাগইনে ক্যাপচার প্রোফাইল বোতামের মাধ্যমে একটি প্রোফাইল ক্যাপচার করতে পারেন। টেনসরবোর্ড উদাহরণটি চালু না থাকলে উপরের প্রোফাইলার বিভাগে ইনস্টল করুন স্ক্রিপ্টটি ব্যবহার করুন already

    উদাহরণ হিসাবে,

# Start a gRPC server at port 6009
tf.profiler.experimental.server.start(6009)
# ... TensorFlow program ...

ক্যাপচার প্রোফাইল ডায়ালগটি নির্দিষ্ট করতে ব্যবহার করুন:

  • প্রোফাইল পরিষেবা URL বা টিপিইউ নাম
  • প্রোফাইলিং সময়কাল
  • ডিভাইস, হোস্ট এবং পাইথন ফাংশন কল ট্রেসিংয়ের স্তর
  • আপনি প্রথমে ব্যর্থ হলে প্রোফাইলার ক্যাপচারিং প্রোফাইলগুলিতে পুনরায় চেষ্টা করতে চাইছেন

প্রোফাইল কাস্টম প্রশিক্ষণ লুপ

আপনার tf.profiler.experimental.Trace কাস্টম প্রশিক্ষণের লুপগুলি প্রোফাইল করতে, প্রোফাইলারের জন্য ধাপের সীমানা চিহ্নিত করতে tf.profiler.experimental.Trace এপিআই দিয়ে প্রশিক্ষণ লুপটি ইনস্ট্রুম করুন। name যুক্তিটি পদক্ষেপের নামের জন্য একটি উপসর্গ হিসাবে ব্যবহৃত হয়, ধাপের নামগুলিতে step_num কীওয়ার্ড যুক্তি যুক্ত করা হয়, এবং _r কীওয়ার্ড আর্গুমেন্ট এই ট্রেস ইভেন্টটিকে প্রোফাইলার দ্বারা একটি পদক্ষেপ ইভেন্ট হিসাবে প্রক্রিয়াজাত করে তোলে।

উদাহরণ হিসাবে,

for step in range(NUM_STEPS):
    with tf.profiler.experimental.Trace('train', step_num=step, _r=1):
        train_data = next(dataset)
        train_step(train_data)

এটি প্রোফাইলারের পদক্ষেপ-ভিত্তিক পারফরম্যান্স বিশ্লেষণ সক্ষম করে এবং পদক্ষেপ ইভেন্টগুলিকে ট্রেস ভিউয়ারে প্রদর্শিত হতে পারে।

নিশ্চিত হয়ে নিন যে আপনি tf.profiler.experimental.Trace পাইপলাইনের সঠিক বিশ্লেষণের জন্য tf.profiler.experimental.Trace প্রসঙ্গের মধ্যে ডেটাসেট পুনরায় অন্তর্ভুক্ত করেছেন।

নীচের কোড স্নিপেট একটি অ্যান্টি-প্যাটার্ন:

for step, train_data in enumerate(dataset):
    with tf.profiler.experimental.Trace('train', step_num=step, _r=1):
        train_step(train_data)

ব্যবহারের ক্ষেত্রে প্রোফাইলিং করা হচ্ছে

প্রোফাইলার চারটি পৃথক অক্ষ সহ বিভিন্ন ব্যবহারের কেস জুড়ে। কিছু সংমিশ্রণ বর্তমানে সমর্থিত এবং অন্যগুলি ভবিষ্যতে যুক্ত করা হবে। কিছু ব্যবহারের ক্ষেত্রে রয়েছে:

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

উপরোক্ত ব্যবহারের ক্ষেত্রে কোনটি টেনসরফ্লো ২.৩-তে বিভিন্ন প্রোফাইলিং এপিআই দ্বারা সমর্থিত রয়েছে তার নীচে সারণিটি একটি দ্রুত পর্যালোচনা:

প্রোফাইলিং এপিআই স্থানীয় রিমোট একাধিক কর্মী হার্ডওয়্যার প্ল্যাটফর্মগুলি
টেনসরবোর্ড কেরাস কলব্যাক সমর্থিত সমর্থিত নয় সমর্থিত নয় সিপিইউ, জিপিইউ
tf.experimental.profiler Function API সমর্থিত সমর্থিত নয় সমর্থিত নয় সিপিইউ, জিপিইউ
প্রসঙ্গ পরিচালক, এপিআই সমর্থিত সমর্থিত নয় সমর্থিত নয় সিপিইউ, জিপিইউ
অন ​​ডিমান্ড এপিআই সমর্থিত নয় সমর্থিত সীমিত সমর্থন সিপিইউ, জিপিইউ, টিপিইউ

সেরা মডেল কর্মক্ষমতা জন্য সেরা অনুশীলন

অনুকূল কর্মক্ষমতা অর্জনের জন্য আপনার টেনসরফ্লো মডেলগুলির জন্য প্রযোজ্য হিসাবে নিম্নলিখিত সুপারিশগুলি ব্যবহার করুন।

সাধারণভাবে, ডিভাইসে সমস্ত রূপান্তর সম্পাদন করুন এবং নিশ্চিত করুন যে আপনি আপনার প্ল্যাটফর্মের জন্য cuDNN এবং ইন্টেল এমকেএল এর মতো লাইব্রেরির সর্বশেষতম সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করছেন।

ইনপুট ডেটা পাইপলাইন অনুকূলিত করুন

একটি দক্ষ ডেটা ইনপুট পাইপলাইন ডিভাইস অলস সময় হ্রাস করে আপনার মডেল সম্পাদনের গতি মারাত্মকভাবে উন্নত করতে পারে। আপনার ডেটা ইনপুট পাইপলাইনটিকে আরও দক্ষ করতে এখানে বিস্তারিত হিসাবে নিম্নলিখিত সেরা অনুশীলনগুলিকে অন্তর্ভুক্ত করার বিষয়ে বিবেচনা করুন:

  • প্রিফেচ ডেটা
  • সমাহার ডেটা নিষ্কাশন
  • সমান্তরালভাবে ডেটা ট্রান্সফর্মেশন
  • মেমরিতে ক্যাশে ডেটা
  • ব্যবহারকারী-সংজ্ঞায়িত ফাংশনগুলি ভেক্টরাইজ করুন
  • রূপান্তরগুলি প্রয়োগ করার সময় মেমরির ব্যবহার হ্রাস করুন

অতিরিক্তভাবে, ইনপুট পাইপলাইনটি কোনও পারফরম্যান্স বাধা কিনা তা পরীক্ষা করতে আপনার মডেলটিকে সিন্থেটিক ডেটা দিয়ে চালানোর চেষ্টা করুন।

ডিভাইসের কর্মক্ষমতা উন্নত করুন

  • প্রশিক্ষণ মিনি-ব্যাচের আকার বৃদ্ধি করুন (প্রশিক্ষণের লুপের এক পুনরাবৃত্তিতে ডিভাইস হিসাবে ব্যবহৃত প্রশিক্ষণের নমুনার সংখ্যা)
  • অন ​​ডিভাইস অপ্স কীভাবে দক্ষতার সাথে চালিত হয় তা জানতে টিএফ স্ট্যাটাস ব্যবহার করুন
  • গণনা সম্পাদন করতে এবং বিকল্পভাবে tf.function ব্যবহার করুন, experimental_compile পতাকা সক্ষম করুন
  • পদক্ষেপগুলির মধ্যে হোস্ট পাইথন অপারেশনগুলি কমান এবং কলব্যাকগুলি হ্রাস করুন। প্রতিটি পদক্ষেপের পরিবর্তে প্রতি কয়েক ধাপে মেট্রিক গণনা করুন
  • ডিভাইস গণনা ইউনিটগুলিকে ব্যস্ত রাখুন
  • সমান্তরালভাবে একাধিক ডিভাইসে ডেটা প্রেরণ করুন
  • প্রথমে চ্যানেলগুলি পছন্দ করার জন্য ডেটা বিন্যাসটিকে অনুকূলিত করুন (যেমন এনএইচডাব্লু এনএইচডাব্লু এর উপরে এনএইচডাব্লু)। এনভিআইডিআইএ ভি ভি 100 এর মতো কিছু নির্দিষ্ট জিপিইউ একটি এনএইচডব্লিউসি ডেটা বিন্যাসের সাথে আরও ভাল পারফর্ম করে।
  • 16-বিট সংখ্যাসূচক উপস্থাপনা যেমন fp16 , আইইইই দ্বারা নির্দিষ্ট অর্ধ-নির্ভুলতা ভাসমান পয়েন্ট ফর্ম্যাট বা ব্রেন ভাসমান-পয়েন্ট bfloat16 ফর্ম্যাট ব্যবহার বিবেচনা করুন
  • কেরাস মিশ্রিত নির্ভুলতা API ব্যবহার করার বিষয়টি বিবেচনা করুন
  • জিপিইউগুলিতে প্রশিক্ষণ দেওয়ার সময়, টেন্সরকোরটি ব্যবহার করুন। যথাযথতা fp16 এবং ইনপুট / আউটপুট মাত্রা 8 বা 16 দ্বারা বিভাজ্য হয় (জিপিইউ কার্নেলগুলি টেনসরকার ব্যবহার করে)

অতিরিক্ত সম্পদ