بنچ‌مارک Geekbench یا گیک‌بنچ که در حال حاضر نسخه‌ی سوم آن مورد استفاده‌ی عموم است، بنچ‌مارکی برای تخمین قدرت پردازشی پردازنده‌ی اصلی و عملکرد حافظه است. این بنچ‌مارک محاسبات عدد صحیح، محاسبات اعشاری و عملکرد حافظه را با آزمون‌های مختلف و به صورت تک‌ترد (استفاده از یک هسته) یا مالتی‌ترد (چند هسته) اندازه‌گیری کرده و امتیازی کلی در نظر می‌گیرد. گیک‌بنچ برای اندروید، iOS ، ویندوز و مک و لینوکس منتشر شده است. در ادامه بیشتر با گیک‌بنچ آشنا می‌شویم.

تبلیغات ۷۲۰ در ۹۰

گیک‌بنچ ، بنچ‌مارکی همه‌جانبه برای پردازنده‌ی اصلی و رم

گیک‌بنچ بنچ‌مارکی است که پس از انجام آزمایشات متعدد و اعمال بارهای پردازشی متنوع، عملکرد کلی پردازنده را تخمین می‌زند. اعمال پردازشی و مراحل آزمون در سه دسته‌ی اصلی طبقه‌بندی می‌شوند:

  • محاسبات اینتیجر یا عدد صحیح : گروهی از تست‌ها شامل دستوراتی برای کار با اعداد صحیح (بدون بخش اعشاری یا پس از ممیز) است. هر چه سرعت پردازش بالاتر باشد، پردازنده در انجام محاسبات اینتیجر یا همان عدد صحیح موفق‌تر است.
  • محاسبات اعشاری : این گروه از تست‌ها قدرت محاسبات اعشاری پردازنده را بررسی می‌کنند. کاربرد محاسبات اعشاری در نرم‌افزارهایی مثل بازی، ویرایش مالتی‌مدیا و نرم‌افزارهای محاسباتی مهندسی است به همین جهت اهمیت بسیار زیادی دارد.
  • عملکرد حافظه : گیک‌بنچ شامل تست‌هایی برای سنجش پهنای باند حافظه هم می‌شود چرا که برخی نرم‌افزارها هنگام اجرا به انبوهی از داده نیاز دارند و انبوهی از نتایج تولید می‌شود. بدیهی است که اگر پهنای باند بالاتر و تأخیر کش کمتر باشد، عملکرد بهتر خواهد بود. به عنوان مثال ویرایش ویدیو و مالتی‌مدیا به پهنای باند بالایی نیاز دارد.

نتیجه‌ی نهایی تک‌تک مراحل تست با در نظر گرفتن ضرایب وزنی که در حقیقت مهم بودن یا اهمیت کمتر برخی تست‌ها را لحاظ می‌کند، به عنوان یک امتیاز کلی اعلام می‌شود. گیک‌بنچ امتیاز Mac mini 2011 و در حقیقت پردازنده‌ی Core i5-2520M اینتل با سرعت کلاک 2.5 گیگاهرتز را معادل 2500 در نظر گرفته و سایر پردازنده‌های دستاپی، لپ‌تاپی، گوشی و تبلت در قیاس با این مدل خاص امتیاز متفاوتی دریافت می‌کنند.

 دقت کنید که اسکیل امتیاز خطی است و نه لگاریتمی. بنابراین دو برابر بودن امتیاز به معنی سرعت دو برابر پردازنده در اجرای امور مختلف است. البته در دنیای واقعی پردازنده‌ای که امتیاز دو برابر از مجموعه تست‌های گیک‌بنچ دریافت کرده، ممکن است بیش از 2 برابر و کمتر از آن سریع باشد. در حقیقت نرم‌افزارهای پیچیده و غیربهینه و یا برعکس، نرم‌افزارهای بهینه شده برای استفاده از تمام توانمندی‌های یک مدل خاص، می‌توانند نتایج را دگرگون جلوه دهند. در مجالی دیگر مقاله‌ای برای مقایسه‌ی عملکرد تراشه‌ها تهیه می‌کنم.

مالتی‌ترد و تک‌ترد در گیک‌بنچ و نگاه متفاوت به تنوع هسته‌ها

گیک‌بنچ تمامی مراحل آزمون را به صورت مالتی‌ترد و تک‌ترد اجرا می‌کند. منظور از Multi Thread این است که تمامی هسته‌ها به صورت کامل استفاده می‌شوند تا تردهای پردازشی را تا جایی که ممکن است به صورت موازی اجرا کنند. در حالت Single Thread یا تک‌ترد که گاهی تک‌هسته‌ای هم گفته می‌شود، تنها یک ترد پردازشی برای اجرای بار پردازشی اجرا می‌شود. بدین ترتیب امتیاز به دست آمده، توانمندی یک هسته و گاهی بخشی از توانمندی یک هسته را نمایان می‌کند.

بنچ‌مارک گیک‌بنچ ، امتیاز تک‌ترد و مالتی‌ترد

بنچ‌مارک گیک‌بنچ ، امتیاز تک‌ترد و مالتی‌ترد

اما دو سوال مهم:

اگر هسته‌ها متفاوت باشند چطور؟ مثلاً Cortex-A57 و Cortex-A53 با سرعت‌های متفاوت.

در آرایش بیگ.لیتل تراشه‌های ویژه‌ی گوشی، ترد پردازشی به صورت خودکار توسط هسته‌هایی که سریع‌تر هستند اجرا می‌شود. به عنوان مثال اگر هسته‌های یکسان با محدودیت سرعت 1.5 و 2 گیگاهرتز داشته باشیم، هسته‌ی 2 گیگاهرتزی است که ترد پردازشی یکتا را اجرا می‌کند.

اگر معماری هسته‌ها متفاوت باشد و به عنوان مثال Cortex-A57 با سرعت 1 گیگاهرتز در کنار Cortex-A53 با سرعت بالاتر مثل 1.4 گیگاهرتز قرار داشته باشد، هسته‌ی قدرتمندتر و نه لزوماً با سرعت کلاک بالاتر انتخاب می‌شود. بنابراین Cortex-A57 در این مثال ساده انتخاب می‌شود چرا که قدرت پردازشی آن با وجود سرعتی که ذکر شد، بیشتر است.

چرا بخشی از قدرت یک هسته در حالت تک‌تردی نمایان می‌شود؟

برخی پردازنده‌های اینتل از هایپرتردینگ پشتیبانی می‌کنند و دو ترد توسط یک هسته اجرا می‌شود. به همین علت در سیستم عامل ویندوز، برخی پردازنده‌های 4 هسته‌ای را 8 هسته‌ای می‌بینیم ولیکن 4 هسته‌ی دوم منطقی است و نه فیزیکی. البته به این هسته‌ها، هسته‌ی مجازی هم گفته می‌شود و حداکثر 50 درصد هسته‌های واقعی، قدرت دارند. در حالت تک‌ترد، فقط یک ترد پردازشی وجود دارد و این یعنی تمام توانایی یک هسته آشکار نخواهد شد.

مختصری در مورد مراحل دقیق بنچ‌مارکگیک‌بنچ 3

محاسبات اینتیجر

AES : رمزگذاری  کردن داده با استاندارد رمزگذاری پیشرفته یا به اختصار AES

Twofish : رمزگذاری متن با استفاده از الگوریتم توفیش.

SHA1 : الگوریتمی برای تبدیل یک ورودی باینری (دودویی) به hash ، تبدیل ورودی به کد هش ساده است اما برعکس آن دشوار. لذا از SHA1 برای تبدیل رمز عبور به هش استفاده می‌شود.

SHA2 : مثل نمونه‌ی قبل است اما از نظر امنیت، بهتر است. البته حفره‌ی امنیتی خاصی هم متوجه آن است.

فشرده‌سازی و بازگشایی با BZip2 : یکی از الگوریتم‌های فشرده‌سازی BZip2 است. بار پردازشی شامل BZip2 به صورت فشرده‌سازی کتاب‌های الکترونیکی با فرمت HTML است که توسط کتابخانه‌ی bzlib فشرده می‌شود.

فشرده‌سازی تصاویر به صورت JPEG : تصاویر دیجیتالی با استاندارد JPEG فشرده و سپس بازگشایی می‌شوند. از کتابخانه‌ی libjpeg نسخه‌ی 6b استفاده می‌شود.

فشرده‌سازی تصاویر به صورت PNG : تصاویر با کتابخانه‌ی libpng نسخه‌ی 1.6.2 فشرده و از حالت فشرده خارج می‌شوند.

Sobel : الگوریتمی برای یافتن لبه‌ی اجسام در پردازش تصویر است. ورودی‌ها همان تصاویر دو مرحله‌ی فوق هستند.

محاسبات اعشاری

Black-Scholes : از حالت خاص معادله‌ی Black-Scholes برای مدل کردن قیمت‌ها در بازارهای مالی استفاده می‌شود.

Mandelbrot : ایجاد یک فرکتال (fractal) زیبا با محاسبات دقیق اعشاری.

Sharpen image : افزایش وضوح لبه‌ها در تصاویر که با الگوریتم‌هایی نظیر آنچه در فتوشاپ یا GIMP استفاده شده، صورت می‌گیرد.

Blur Image : فرآیند معکوس افزایش وضوح و در واقع مات کردن لبه‌ها در تصاویر.

SGEMM و DGEMM : محاسبه‌ی حاصلضرب ماتریس‌ها عملی پایه‌ای در شبیه‌سازی فیزیک، پردازش سیگنال، پردازش گرافیک و … است که به دو صورت انجام می‌شود.

SFFT و DFFT : محاسبه‌ی تبدیل سریع فوریه یا به اختصار FFT برای تحلیل فرکانسی، محاسبه‌ی اسپکتروم در پردازش صدا و حتی پلیرهای صدا و … کاربرد دارد.

N-Body : بار پردازشی برای محاسبه‌ی یک شبیه‌سازی فیزیکی که می‌تواند در بازی‌ها کاربرد فراوان داشته باشد.

Ray trace : رندر کردن یک صحنه‌ی سه‌بعدی بر اساس توضیحات هندسی است.

تست حافظه

STREAM copy : کپی کردن مقدار زیادی داده که شامل اعداد اعشاری می‌شود.

STREAM scale : شبیه مرحله‌ی قبل با این تفاوت که هر یک از اعداد در عددی ثابت ضرب و سپس کپی می‌شوند.

STREAM add : مثل مرحله‌ی کپی با این تفاوت که دو لیست عدد اعشاری وجود دارد و عناصر دو به دو با هم جمع شده و سپس کپی می‌شوند.

STREAM triad : تلفیقی از دو مرحله‌ی فوق است به این معنی که دو لیست وجود دارد، اعداد یک لیست پس از ضرب شدن در عدد ثابت با اعداد لیست دیگر جمع شده و نتیجه در لیست سومی ذخیره می‌شود.