سختافزار چگونه بر تحلیل شطرنج تو اثر میگذارد
هستههای پردازنده، اندازه درهمسازی، و چرا لپتاپت مثل یک سرور تحلیل نمیکند
وقتی موتور شطرنج را اجرا میکنی فقط یک برنامه را اجرا نکردهای؛ از رایانهات میخواهی در هر ثانیه میلیونها وضعیت را بکاود، هرکدام را بسنجد و بهترین داوریاش را به تو برگرداند. اینکه چقدر خوب از پس این کار برمیآید مستقیماً به سختافزار بستگی دارد. با این حال در سکوهای شطرنج تقریباً هرگز از این عامل تعیینکننده حرفی زده نمیشود.
هرکس پیشرفتش را جدی میگیرد باید نسبت میان سختافزار و کیفیت تحلیل را بفهمد. همین نسبت توضیح میدهد چرا یک وضعیت واحد روی دستگاههای مختلف ارزیابیهای متفاوت میگیرد و چرا «عمق ۲۰» روی گوشی همان «عمق ۲۰» روی یک رایانه رومیزی نیرومند نیست.
پردازنده: مغز پشت تحلیل
موتورهایی مثل استاکفیش بیش از هر چیز پردازنده را مشغول میکنند. کارشان ساختن و پیمودن درخت بازی است: رشتههای شاخهشاخه از حرکت و پاسخ که تا دور دست پیش میروند. هرچه پردازنده سریعتر باشد، موتور در هر ثانیه وضعیتهای بیشتری میسنجد؛ این را با شمار گره در ثانیه اندازه میگیرند.
یک پردازنده رومیزی امروزی با استاکفیش شاید به ۳۰ تا ۵۰ میلیون گره در ثانیه برسد، در حالی که پردازنده تلفن همراه در محدوده ۳ تا ۸ میلیون میماند. این فاصله تقریباً پنج تا ده برابری یکراست به عمق تبدیل میشود. در زمانی برابر، رایانه رومیزی بهمراتب عمیقتر میرود و رشتههای تاکتیکی و ظرافتهای موقعیتیای را مییابد که گوشی اصلاً فرصت دیدنشان را ندارد.
پردازندههای چندهستهای جستوجوی موازی را هم به میان میآورند. وقتی استاکفیش بهجای یک رشته از هشت رشته استفاده میکند، هشت برابر سریعتر نمیشود — هزینه هماهنگی بخشی از سود را میخورد — اما در همان زمان به عمقهای محسوس بیشتری میرسد. به همین دلیل تحلیل سروری سکوها معمولاً از تحلیلی که روی دستگاه خودت اجرا میشود بهتر درمیآید.
جدولهای درهمسازی: حافظه مهم است
جدول جابهجایی که معمولاً کوتاهشده آن را «هش» مینامند، ناحیهای از حافظه است که وضعیتهای ارزیابیشده را نگه میدارد. اگر موتور همان وضعیت را از راه ترتیب حرکت دیگری دوباره ببیند — و در شطرنج این مدام پیش میآید — بهجای محاسبه از نو، ارزیابی پیشین را بازمیخواند.
اندازه این جدول یکراست بر کیفیت تحلیل اثر میگذارد. با حافظه بیشتر، موتور وضعیتهای تحلیلشده بیشتری را نگه میدارد و کار تکراری نمیکند. با حافظه کم، پیوسته آنچه دیده را «فراموش میکند» و توان محاسباتی هدر میرود.
قاعده کلی این است که حدود نیمی از حافظه در دسترس را به آن بدهی، هرچند برای بیشتر کاربران بازه ۵۱۲ مگابایت تا ۲ گیگابایت راحتترین است. مقدار بیش از حد دردسر میسازد، چون سیستمعامل شروع به جابهجا کردن حافظه روی دیسک میکند.
در تحلیل درون مرورگر، همانکه ChessOnyx ارائه میدهد، حافظه تنگتر است. WebAssembly در چارچوب محدودیتهایی کار میکند که مرورگر تعیین کرده است. یکی از دلیلهای اینکه تحلیل مرورگری با همه توانایی چشمگیرش کاملاً به پای یک برنامه رومیزی بومی با حافظه فراوان نمیرسد همین است.
شبکه NNUE: انقلاب شبکههای عصبی
استاکفیش امروزی برای ارزیابی وضعیت از شبکه NNUE استفاده میکند؛ شبکهای عصبی که با صدها میلیون وضعیت آموزش دیده و درک موقعیتی موتور را نسبت به تابع ارزیابی دستنویس قدیمی بهشکل چشمگیری بهبود داده است.
ارزیابی با این شبکه از نظر محاسباتی از روش قدیمی سنگینتر است، یعنی سنجیدن هر گره کمی بیشتر طول میکشد. اما ارزیابیها آنقدر دقیقترند که موتور حتی در عمقهای کمتر هم بهتر تصمیم میگیرد. نتیجه نهایی بازی بهروشنی قویتر و تحلیل مطمئنتر است.
خود شبکه پروندهای است که هنگام راهاندازی موتور بارگذاری میشود و نسخههای متفاوت آن ارزیابیهای متفاوت میدهند. پس هنگام سنجیدن تحلیل سکوهای گوناگون خوب است بدانی شاید شبکههایشان یکی نباشد، حتی اگر روی همه نوشته باشد «استاکفیش».
مرورگر، رایانه رومیزی یا سرور
برای تحلیل سه محیط رایج وجود دارد و هرکدام ویژگی خودش را دارد:
تحلیل درون مرورگر با WebAssembly مستقیم روی دستگاه خودت اجرا میشود. راحت است، نصب نمیخواهد و روی هر دستگاهی کار میکند. در عوض به سقف حافظه مرورگر محدود است و به سبب سربار WebAssembly معمولاً کمی کندتر از برنامههای بومی است. روی مرورگر رومیزی امروزی کیفیت خوبی میگیری؛ روی گوشی نتیجه کمعمقتر میماند.
برنامههای رومیزی مانند استاکفیش بومی و ChessBase سختافزارت را تمام و کمال به کار میگیرند. بی هیچ محدودیت مرورگری، مستقیم به رشتههای پردازنده و حافظه دسترسی دارند. برای کار تحلیلی جدی، یک برنامه رومیزی روی سختافزار توانمند بهترین تجربه فردی را میدهد.
تحلیل سروری روی سختافزار نیرومند ابری اجرا میشود و نتیجه را به مرورگرت میفرستد. این راه راحتی مرورگر را با توان سرور جمع میکند. بهایش این است که به در دسترس بودن سرور وابستهای و معمولاً نمیتوانی عمق و پارامترها را آزادانه تنظیم کنی.
هر سه راه جای خود را دارند. ChessOnyx تحلیل مرورگری را برگزیده چون میخواهیم بی هیچ نصبی، مهار تحلیل را به دست خودت بدهیم. محاسبه روی دستگاه تو انجام میشود و دادهای به سرور نمیرود؛ یعنی بازیهایت پیش خودت میماند.
این برای تو چه معنایی دارد
درک نقش سختافزار کمک میکند نتیجهها را دقیقتر بخوانی. نکتههای عملیاش اینهاست:
ارزیابی دستگاهها یا سکوهای مختلف را کنار هم نگذار و انتظار انطباق کامل نداشته باش. اختلاف ۰٫۱ تا ۰٫۳ میان تحلیل خانگیات و تحلیل یک سکو طبیعی است.
اگر تحلیلت جدی است، از قویترین دستگاهی که در اختیار داری استفاده کن. رایانه رومیزی با پردازنده چندهستهای امروزی نتیجهای بهمراتب بهتر از گوشی میدهد.
به موتور وقت بده. روی هر سختافزاری، هرچه بیشتر کار کند نتیجه مطمئنتر است. پنج ثانیه روی یک وضعیت خیلی کمتر از سی ثانیه به تو میگوید.
به عمق نگاه کن، نه فقط به زمان. عمق ۲۵ روی رایانه سریع و روی گوشی کند یک عمق جستوجوی یکسان است؛ تفاوت در این است که یکی در چند ثانیه به آن میرسد و دیگری شاید در چند دقیقه. پس دو تحلیل را در عمقهای همسان بسنج، نه در زمانهای همسان.
سختافزارت هرچه باشد، موتور ابزاری نیرومند میماند. حتی روی دستگاههای ساده، استاکفیش امروز تحلیلی میدهد که ده سال پیش فراتر از توان انسان به شمار میرفت. مهم این است که حد و مرزش را روی همان دستگاه خودت بشناسی و نتیجهها را بر همان پایه بخوانی.