خوش آمدید, مهمان
نام كاربری کلمه عبور ذخیره

راهنمای انتخاب قطعات کامپیوتر برای نرم افزارهای گرافیکی
(1 مشاهده) (1) مهمان

موضوع: راهنمای انتخاب قطعات کامپیوتر برای نرم افزارهای گرافیکی

راهنمای انتخاب قطعات کامپیوتر برای نرم افزارهای گرافیکی 1 سال, 8 ماه پیش #140981

  • SajjadKhati
  • آفلاین
  • كاربر کوشا
  • ارسال: 349
  • دریافت تشكر: 282
  • 
به نام خدا

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

p30download.ir/fa/entry/91386/

وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
كاربران زیر تشكر كردند: Car maker, persian_boy, looking for art

پاسخ: راهنمای انتخاب قطعات کامپیوتر برای نرم افزارهای گرافیکی 1 سال, 8 ماه پیش #140982

  • SajjadKhati
  • آفلاین
  • كاربر کوشا
  • ارسال: 349
  • دریافت تشكر: 282
اولین قطعه که میدونید مهمترین قطعه هست ، انتخاب پردازنده ی CPU هست .
پردازنده که انتخاب بشه ، سوکت مادربرد (صرف نظر از چیپست و مدار تغذیه ی مادربرد که اگه وقت شد ، بعدا بهش میپردازیم) هم مشخص خواهد شد .

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


---------------------------------------------------


معماری پردازنده (قسمت 1) :


همونطور که میدونید ، هر برنامه (مثل افترافکت) ، از حداقل ، یک پروسه (یا پروسس یا process) تا چندین پروسه تشکیل شدن . نام پروسه را در سربرگ details در task manager میشه پیدا کرد . نام پروسه ی اصلی افترافکت ، AfterFX.exe هست .
هر پروسه (process) هم که در task manager قابل مشاهده هست ، از حداقل یک نخ (thread) تا چند نخ تشکیل شدن .
نخ های هر پروسه هم در پنجره ی Resource Monitor در ستون Thread ، قابل مشاهده هستن :



همونطور که در تصویر بالا میبینید ، پروسه ی AfterFX (پروسه ی اولی که انتخاب شده هست) ، در این لحظه ای که عکس گرفته شد ، 55 نخ در حال اجرا داره . هر لحظه هم تعداد این نخ ها ممکنه کمتر یا بیشتر بشه .
توی هر نخ ، کدهای پروسه و نرم افزار اجرا میشن .
نخ ها ، یا در حال اجرای کدشون در پردازنده هستن یا اینکه متوقف شده هستند .
اگه متوقف شده باشند ، که از پردازنده استفاده نمیکنند . پس هیچ چی .
اما تا زمانی که نخ ها در حال اجرای کدشون باشند ، از پردازنده استفاده میکنند و بنابراین کارکرد و اشغال پردازنده ، بالا میره .
در صورتی که نخ ها در حال اجرای کدشون باشند ، به ازای هر نخ ، یک هسته از پردازنده اشغال میشه . در واقع ، در یک لحظه ، هر هسته ی پردازنده ، فقط کدهای یک نخ (ای که در حال اجرای کدش باشه) را پردازش میکنه . بنابراین اگه پردازنده ای مثلا 8 هسته ای باشه ، درون دو هسته اش ، هیچ وقت یک نخ را بصورت همزمان پردازش نمیکنه و کدهاش را اجرا نمیکنه . بلکه فقط یک نخ را در یک هسته اش پردازش و کدهای اون نخ را اجرا میکنه .


همونطور که در ستون cpu در تصویر نشون میده ، میبینید که این پروسه (ی افترافکت) با اونکه 55 نخ داره ولی کارکرد و اِشغال cpu اش 0 هست . یا به عبارتی ، به این معناست که هیچ کدوم از 55 نخ در این پروسه ، در حال اجرای کد نیستند و به عبارتی همه ی 55 نخ در این پروسه یا متوقف شدند یا در حال انتظار هستند .
ستون average cpu در تصویر بالا هم نشون میده که در 60 ثانیه ی اخیر ، این پروسه ، چند درصد از کل پردازنده را اشغال کرد . که در اینجا ، میانگین اش در 60 ثانیه ی اخیر ، مقدار 0.03 درصد از پردازنده را اشغال کرد (که به 1 درصد هم نرسیده) .
دانلود فیلم آموزش #C از صفر تا متوسط از لینک زیر :

p30download.ir/fa/entry/91386/

وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
آخرین ویرایش: 1 سال, 8 ماه پیش ارسال توسط SajjadKhati.
كاربران زیر تشكر كردند: Car maker, persian_boy

پاسخ: راهنمای انتخاب قطعات کامپیوتر برای نرم افزارهای گرافیکی 1 سال, 8 ماه پیش #140983

  • SajjadKhati
  • آفلاین
  • كاربر کوشا
  • ارسال: 349
  • دریافت تشكر: 282
معماری پردازنده (قسمت 2) :


پس در نتیجه گیریِ پست قبلی ، این مهم هست که از هر تعداد نخ ای که در اون لحظه یه پروسه داره (در افترافکت در لحظه ی عکس گرفتن در پست بالا 55 بود) ، چه تعداد از اون نخ ها در حال اجرای کدشون باشن . که تعداد نخ هایی که در حال اجرای کدشون باشن را فعلا نمیشه با نرم افزاری متوجه شد (بعدا یه توضیح کوچیکی میدم) .
به همون تعداد (تعداد نخ های در حال اجرای کدشون در پروسه) ، هسته ی پردازنده برای اجرای سریعتر نیاز هست . اگه تعداد هسته ها ، از تعداد نخ هایی که در حال اجرای کدشون هستن ، بیشتر باشه ، در اون لحظه ، اون تعداد از هسته های پردازنده ، بیکار خواهد بود . مثلا اگه در پروسه ی افترافکت ، در یک لحظه 55 نخ داشته باشیم و فقط 2 نخ از اون 55 نخ ، در حال اجرای کدشون باشن و ما یه پردازنده ای با 8 هسته (فیزیکی) داشته باشیم ، پس در اون لحظه ، فقط 2 هسته از پردازنده مون (یعنی 25 درصد از توان پردازنده مون) در حال کار و اِشغال هست و 6 هسته ی دیگه (75 درصد از توان پردازنده مون) در اون لحظه بیکار هست . اما اگر تعداد هسته ها ، از تعداد نخ هایی که در حال اجرای کدشون هستن ، کمتر باشه ، سرعت پردازش در سیستم کاربر ، به همون نسبت ، پایین تر میاد .




نرم افزارهای گرافیکی 2 بعدی ، حداکثر ، از چند هسته ی پردازنده استفاده میکنند و پردازنده ی چند هسته ای براشون تهیه کنیم؟
اغلب نرم افزارها (بجز نرم افزارهای 3 بعدی اون هم موقع رندرشون) مثل افترافکت و فتوشاپ و موکا و بسیاری از نرم افزارهای دیگه ، چه زمان کار کردن با نرم افزار چه موقع رندرشون ، فقط قابلیت استفاده از 1 تا 8 هسته (ی فیزیکی) از پردازنده را دارند . بصورت متوسط ، 4 تا 6 هسته (فیزیکی) از پردازنده را استفاده میکنند.
البته این را که میگم ، تاکید میکنم که برای همه ی نرم افزارها نیست . بلکه برای اغلب نرم افزارهای گرافیکی هست .
هر چند بحث پریمیر جداست و این نرم افزار تا 24 هسته ی فیزیکی (به همراه 48 هسته ی منطقی) را میتونه استفاده کنه.
به هر حال ، باید برای اطلاع دقیق از یک نرم افزار که چقدر منابع (یعنی رم و cpu و gpu و هارد) استفاده میکنه ، باید هم به سایت اصلی و هم نتایج تست اش در سایت های دیگه را مشاهده کرد .

این ، به این معناست که این نرم افزارها ، حداکثر ، در یک لحظه ، بین 1 تا 8 نخ فعال (نخی که در حال اجرای کدش باشه) دارند و بصورت متوسط ، در یک لحظه ، 4 تا 6 نخ فعال دارند (هر چند مثل تصویر در پست قبلی ، اون پروسه ، 55 نخ داشته باشه اما بقیه ی نخ هاشون یا متوقف شده اند یا منتظر میمونن) .

یا به عبارتی دیگه ، حداکثر ، استفاده از پردازنده ای بیش از 8 هسته ای (مثلا استفاده از پردازنده ی 12 هسته یا 16 یا 32 هسته ای) ، برای این نرم افزارها ، هیچ کاربردی نداره و فقط هزینه ی اضافی بدون استفاده از مزیت این پردازنده هاست .
ولی حتی یه پردازنده ی 6 هسته ای هم برای این نوع نرم افزارها کاملا کافی هست و در صورتی که شخصی بخواد عالی ترین کارایی نسبت به هزینه را داشته باشه ، یک پردازنده ی 6 هسته ای برای استفاده از این نرم افزارها توصیه میشه .
در صورتی که برای کسایی که بودجه ی کمتری دارند ، پردازنده ی 4 هسته ای توصیه میشه .

در لینک های زیر ، تفاوت عملکرد پردازنده ها با تعداد هسته های مختلف را در نرم افزار افترافکت میبینید (بقیه ی نرم افزاریی که گفته شد هم شبیه افترافکت هستند) :

Best Workstation Computer For After Effects

و

After Effects CPU performance: Intel Core X-10000 vs AMD Threadripper 3rd Gen



برای پریمیر هم (قابلیت استفاده تا 24 هسته ی فیزیکی را داره) :

Best Computer for Video Editing

و

Recommended Systems for Adobe Premiere Pro

و

Premiere Pro CPU performance: AMD Threadripper 3990X 64 Core
دانلود فیلم آموزش #C از صفر تا متوسط از لینک زیر :

p30download.ir/fa/entry/91386/

وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
آخرین ویرایش: 1 سال, 8 ماه پیش ارسال توسط SajjadKhati.
كاربران زیر تشكر كردند: Car maker

پاسخ: راهنمای انتخاب قطعات کامپیوتر برای نرم افزارهای گرافیکی 1 سال, 8 ماه پیش #140984

  • SajjadKhati
  • آفلاین
  • كاربر کوشا
  • ارسال: 349
  • دریافت تشكر: 282
نرم افزارهای گرافیکی 3 بعدی ، حداکثر ، از چند هسته ی پردازنده استفاده میکنند و پردازنده ی چند هسته ای براشون تهیه کنیم؟
نرم افزارهای گرافیکی 3 بعدی (مثل Cinema 4D و ...) را باید در 2 حالت مختلف بررسی کرد :

1) زمانی که کاربر داره با نرم افزار کار میکنه . یعنی زمانی که داره با نرم افزار ، پروژه شو طراحی میکنه (مثل ایجاد ، اصلاح و انیمیت کردنِ مدل های 3 بعدی و ...) :
در این حالت ، مثل نرم افزارهای گرافیکی دو بعدی (مثل افترافکت و ...) ، این نرم افزارهای 3 بعدی هم در یک لحظه ، حداکثر بین 1 تا 8 نخ فعال (نخی که در حال اجرای کدش باشه) دارند و بصورت متوسط ، در یک لحظه ، 4 تا 6 نخ فعال دارند . یا به عبارتی دیگه ، در این حالت ، حداکثر ، بیشتر از پردازنده ی 8 هسته ای بکارشون نمیاد . پردازنده ی 6 هسته ای برای کاربرد عالی نسبت به قیمت ، توصیه میشه و برای بودجه ی کمتر هم پردازنده ی 4 هسته ای توصیه میشه .

2) زمانی که کاربر داره با نرم افزار ، رندر میکنه . البته اگه موتور رندری باشه که بر اساس cpu کار کنه که در اصطلاح به این موتورهای رندر ، cpu based میگن . مثل موتور رندر پیش فرض Cinema 4D و موتورهای رندر دیگه مثل Arnold و Mental Ray و V-Ray و Keyshot ، میتونن از تمام هسته های پردازنده ها (حتی اگه پردازنده بیش از 64 هسته ی فیزیکی داشته باشه) استفاده کنن . بنابراین در این حالت (موقع رندر در نرم افزارهای 3 بعدی) ، هر چی تعداد هسته های پردازنده بیشتر باشه ، سریعتر رندر انجام میشه .
دانلود فیلم آموزش #C از صفر تا متوسط از لینک زیر :

p30download.ir/fa/entry/91386/

وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
كاربران زیر تشكر كردند: Car maker

پاسخ: راهنمای انتخاب قطعات کامپیوتر برای نرم افزارهای گرافیکی 1 سال, 8 ماه پیش #140985

  • SajjadKhati
  • آفلاین
  • كاربر کوشا
  • ارسال: 349
  • دریافت تشكر: 282
چرا نرم افزارهای 2 بعدی (و نرم افزارهای 3 بعدی در زمان طراحی _زمان غیر رندر) ، نمیتونن از پردازنده های بالای 8 هسته ای استفاده کنند؟
همونطور که متوجه شدید و گفته شد ، تعداد نخ های فعال (نخ هایی که در حال اجرای کدشون هستند) در یک لحظه ، تعداد استفاده از هسته های پردازنده را مشخص میکنه . و همونطور هم که گفته شد ، نرم افزارهای 2 بعدی ، در هر حالتی (چه زمان طراحی چه زمان رندر) و همچنین نرم افزارهای 3 بعدی در زمان طراحی ، در یک لحظه ، بصورت متوسط 4 تا 6 نخ فعال دارند .




چرا نرم افزارهای 2 بعدی (و همچنین نرم افزارهای 3 بعدی در زمان طراحی _زمان غیر رندر) ، بیشتر از 8 نخ در یک لحظه ایجاد نمیکنند تا بتونن از تمام هسته های پردازند هایی که از 8 هسته بیشتر دارند ، استفاده کنند؟
این به ماهیت نخ ها برمیگرده . اول اینکه ، این نکته را یادآوری کنم که یک نخ ، فقط در یک هسته (در یک لحظه) اجرا میشه .
نخ ها ، مثل کارها (کارهایی که باید در دنیای واقعی انجام بشن) شبیه هستند .
وقتی نخ ای ساخته میشه که ، یک کار جدید وجود داشته باشه که هیچ ارتباطی با کار قبلی که در نخ قبلی انجام میشه ، نداشته باشه یا کمترین ارتباط را داشته باشه . وگرنه تداخل کارها ، باعث میشه کارایی ، پایین بیاد .

اول بذارید مثالی زده شه :
فرض کنید یک کاری وجود داره با عنوان "خالی کردنِ سیمان از درون یک کیسه ی سیمان در ظرف جدید توسط بیل" که برای این کار ، 2 کارگر با 2 تا بیل میخوان این کار را انجام بدن .
هیچ وقت همزمان 2 تا بیل ، توی یک کیسه نمیره . بنابراین یک کارگر همیشه باید منتظر بمونه تا بیلِ قبلیِ ای که کارگر قبلی توی کیسه وارد کرد را بیرون بیاره تا (کارگرِ دومی) بتونه بیل خودش را وارد همون کیسه کنه . بنابراین در واقع در اینجا ، فقط یک کارگر عملا داره روی یک کیسه کار میکنه و وجود 2 کارگر ، نه تنها سودی نداره ، گاها ممکنه نتیجه ی عکس بده .
بجای این کار ، بهتر هه که یک کارگر ، یک کیسه ی سیمان را خالی کنه و کارگرِ دیگه ، سراغ کیسه ی سیمانِ جدیدی بره . این جوری ، کارایی افزایش پیدا میکنه . یعنی ، کار در صورتی زودتر انجام میشه که به هر کدوم از کارگرها ، یک کارِ مجزا (مستقل) و جدیدی بدهند .

در مثال بالا ، کار (خالی کردن کیسه ی سیمان) را جای نخ ها بذارید و کارگرها را جای هسته های پردازنده .
بنابراین ، نمیشه بی محابا ، سازنده ی نرم افزار هر تعدادی خواست ، نخ درست کنه . چه بسا کارها تداخل پیدا کنن و سرعت پردازش ، کمتر بشن (مثل قضیه ی خالی کردن یک کیسه ی سیمان توسط دو کارگر) .

بنابراین کارهای مختلف ، باید جوری باشند که به ترتیب همدیگه کاری نداشته باشند تا بشه در نخ های دیگه اجرا بشن (مثل خالی کردن دو کیسه ی سیمان مجزا که دو کارگر ، هر چقدر خواستن ، میتونن برای خودشون کار کنن . مثلا یکی 10 درصد از کیسه ی اولی را خالی میکنه و اون یکی کارگر 60 درصد را خالی میکنه که دو کیسه و دو کارگر ، میزان و ترتیب کارشون به هم مرتبط نمیشه یا کمترین ارتباطی را با هم دارن) .

اما هر پلاگین و هر افکت ای که در نرم افزارهای 2 بعدی بکار میبریم ، عملیاتی و کدهای مجزا و مستقل دارند بنابراین میشه هر کدوم شون را در یک لحظه توی نخ جدیدی اجرا کرد تا در نتیجه در هسته های مختلف درون پردازنده اجرا بشن و کارایی و سرعت پردازش بالاتر بره . همینطور خیلی از کارهای دیگه هم همینطورند و میشه در نخ های جدیدی اجرا بشن . مثلا وقتی 40 تا افکت و پلاگین برای یه لایه اِعمال میکنیم ، چون هر افکت و پلاگین ، کدی مستقل و مجزا دارن ، بنابراین میشه در یک لحظه ، در 40 نخ جدید اجراشون کرد تا در 40 هسته از یک پردازنده (فرض کنید پردازنده ی 64 هسته ای داریم) بصورت همزمان اجرا بشن و بنابراین سرعت رندر ، خیلی بالاتر بره اما این کار را نمیکنن (جواب در سئوال پست زیر)
دانلود فیلم آموزش #C از صفر تا متوسط از لینک زیر :

p30download.ir/fa/entry/91386/

وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
كاربران زیر تشكر كردند: Car maker

پاسخ: راهنمای انتخاب قطعات کامپیوتر برای نرم افزارهای گرافیکی 1 سال, 8 ماه پیش #140986

  • SajjadKhati
  • آفلاین
  • كاربر کوشا
  • ارسال: 349
  • دریافت تشكر: 282
چرا برای هر پلاگینی که بکار میبریم ، یک نخ جدید ساخته نمیشه تا کارها و افکت های هر پلاگین در یک هسته ی جدید بصورت همزمان اجرا بشه و سرعت رندر بالا بره؟
دقیق نمیدونم ولی به احتمال بسیار زیاد ، همین دلیلی هست که در زیر میگم .
اول اینکه میدونید فیلم ها از تصویر ساخته شدند و تصاویر هم از پیکسل ها . در واقع وقتی چیزی رندر میشه ، چیزی نیست جز اینکه مشخص میشه که پیکسل ها ، چه رنگی داشته باشند . رنگ ها هم که عدد هستند . عددی بین 0 تا 16.7 میلیون . یعنی موتورهای رندر ، موقع رندر ، مشخص میکنن که برای فلان پیکسل ، چه عددی بین 0 تا 16.7 میلیون در نظر بگیرند .

دلیل این سئوال این میتونه باشه که زمان رندر ، باید به ترتیب ، افکت قبلی ، ابتدا کدش را اجرا کنه تا مشخص بشه مثلا پیکسل شماره ی 1 ، چه عددی بهش (به عنوان رنگ) تعلق گرفته میشه (مثلا اِعمالِ افکتِ اول ، باعث شد رنگ شماره ی 459 برای پیکسل شماره ی 1 در نظر گرفته بشه) . بعد افکتِ بعدی (افکت شماره 2) روی همون پیکسل (پیکسل شماره ی 1) اجرا بشه تا این بار ، این افکت ، روی خروجیِ رنگِ افکتِ قبلی که 459 بود ، اِعمال بشه (یعنی ورودیِ رنگِ برای افکت شماره ی 2 ، خروجیِ رنگی که افکت قبلی ساخته بود باید باشه که در اینجا خروجیِ رنگِ افکت شماره ی 1 که رنگ شماره ی 459 در پیکسل 1 هست را به عنوان ورودی برای افکتِ شماره ی 2 در نظر گرفته میشه) تا افکت شماره ی 2 ، خروجی جدیدی به عنوان رنگ (مثلا رنگی با شماره ی 75924) برای همون پیکسل شماره ی 1 اِعمال کنه .

این روند و این ترتیب ، همینطور برای تمام افکت ها ، اِعمال میشه .
دلیلِ اینکه وقتی ترتیبِ افکت ها تغییر پیدا کنه ، ممکنه تصویر (چه رنگ تصویر یا هر چیزِ دیگه مثل اِعمال ماسک و ...) تغییر پیدا کنه ، همین هست .
بنابراین چون رندر باید به ترتیبِ افکت و پلاگین ها انجام بشه (یعنی افکت اول باید کدش را اجرا کنه و بعد نوبت افکت دوم برسه و بعد نوبت افکت سوم برسه و ...) ، پس در یک لحظه ، فقط یک نخ و فقط یک هسته باید کارش را انجام بده .
بنابراین در این نوع نرم افزارها ، رندرِ مربوط به افکت ها (تا اونجایی که مربوط به اجرای کدهای افکت ها و پلاگین ها که مهمترین عضو از رندر هستند ، میشه) فقط در یک هسته از پردازنده میتونه اجرا بشه .
دانلود فیلم آموزش #C از صفر تا متوسط از لینک زیر :

p30download.ir/fa/entry/91386/

وقتی انسان ، حیوان هست ، پس قیمت میتونی براش بذاری ولی وقتی انسان حَیّ مُتِاَلِّه هست که قیمت نداره ، بها داره. "دکتر حسن عباسی"
كاربران زیر تشكر كردند: Car maker
زمان ایجاد صفحه: 0.36 ثانیه

جدیدترین ارسالهای تالارگفتگو

ارسالی جهت نمایش وجود ندارد