غول 64 هستهای AMD Threadripper 3990X با نمرات عجیب در یک بنچمارک جدید
سلام
نویسنده ی این تاپیک ، درباره ی اینکه چرا نتیجه ی عملکرد پردازنده ی Threadripper 3990X ، از پردازنده های Threadripper 3970X و Xeon W-3175X در نرم افزار Geekbench کمتر شد ، تعجب کردن که جوابی که به نظرم میرسه را در زیر میگم :
البته این جوابم ممکنه درست نباشه ولی به احتمال زیاد ، باید درست باشه (نظر خودم هست و سند نداره ولی فکر نکنم غلط باشه) . البته این در صورتی هه که این خبر شایعه نباشه و هم پردازنده مراحل کامل و تست کاملش را یط کرده باشه .
اینکه عملکرد یه پردازنده با تعداد هسته های بیشتر ، نسبت به یه پردازنده با تعداد هسته های کمتر ، کمتر میشه ، به برنامه نویسی اون نرم افزاری که ازش استفاده میشه ، برمیگرده .
اینکه یه برنامه بتونه از تمامی توان پردازنده ی Threadripper 3990X استفاده کنه ، حداقل باید در برنامه اش 128 نخ در یک زمان ایجاد کنه و ثانیا کلِ این 128 نخ اش ، بصورت کاملا بهینه نوشته شده باشه . یعنی نخ ها با هم تداخل یا در اصطلاح برنامه نویس ها ، نقاط بحرانی (critical section) نداشته باشن یا کمترین نقاط بحرانی را داشته باشن . یعنی در عکس زیر ، هر برنامه ای که به بصورتی نوشته شده باشه که به پایینی (بخش concurrency) نزدیک تر باشه ، بدتر هه و هر برنامه ای که به بصورتی نوشته شده باشه که به بالایی (بخش parallelism) نزدیک تر باشه ، بهتر هه :
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
بجز این حالت ، نخ باید کمترین کد از هسته ی سیستم را اجرا کنه . یعنی اگه نخ ای اون 2 شرط بالا را داشته باشه باشه اما کدی که اجرا میکنه ، بیشتر ، از هسته ی سیستم عامل باشه ، باز هم جزء کدهای بهینه حساب نمیاد .
و بعد اون برنامه (که 128 نخ داره) را در پردازنده های دیگه مثل Threadripper 3970X اجرا کنن تا تفاوت عملکرد را متوجه بشن .
نمیدونم برنامه ی Geekbench همچین قابلیتی داره یا نه . ولی برنامه ی maxon cinema 4d ، توانایی اجرای 256 نخ همزمان را داره . بنابراین فکر میکنم نرم افزار بنچمارکِ ساختِ این شرکت ، یعنی maxon cinebench ، نرم افزار دقیق تری برای مقیاس پردازنده باشه .
حالا اینکه چرا یه پردازنده ی با تعداد هسته های کمتر (مثل 3970X) ، قویتر از یه پردازنده با هسته های بیشتر (3990X) عمل میکنه؟
همونطور که گفتم ، نمیدونیم که این برنامه ، در یک زمان ، چند نخ را اجرا میکنه (و آیا نخ هاش بهینه هستن یا نه) .
ولی اگه یه برنامه ای اگه نخ هاش کاملا بهینه باشن اما همزمان فقط 70 نخ را اجرا کنه ، یعنی در پردازنده ی 3990X که 128 هسته ی منطقی داره ، 58 هسته ی منطقی اش بیکار هه . این در صورتی هه که 64 هسته ی منطقیِ پردازنده ی 3970X که دارن این نخ ها را اجرا میکنن ، با فرکانس خیلی بالاتری دارن اجرا میکنن و بنابراین این برنامه (که در 70 نخ اجرا میشه) در پردازنده ی 3970X ، سریعتر اجرا میشه نسبت به پردازنده ی 3990X .






پاسخ با نقل قول
Bookmarks