Forwarded from Accio
Pipelining (Instruction-Level Parallelism)
https://en.algorithmica.org/hpc/pipelining/
In order for a CPU to execute any instruction, it needs to follow a few steps:
Fetch machine code from memory
Decode the code and recognize instructions
Execute the instructions where some may do memory operations
Write the results to memory
Notice after an instruction is fetched, CPU can start to process the next one without waiting for it to complete. Modern CPUs take advantage of this and perform a "free" (since we are not using an extra core) parallelism. This is called Pipelining
#cpu #pipelining #parallesim
https://en.algorithmica.org/hpc/pipelining/
In order for a CPU to execute any instruction, it needs to follow a few steps:
Fetch machine code from memory
Decode the code and recognize instructions
Execute the instructions where some may do memory operations
Write the results to memory
Notice after an instruction is fetched, CPU can start to process the next one without waiting for it to complete. Modern CPUs take advantage of this and perform a "free" (since we are not using an extra core) parallelism. This is called Pipelining
#cpu #pipelining #parallesim
Forwarded from Accio
Regarding to pipe-lining, they don't always result in optimization. There are times when you might run into obstacles called Pipeline Hazards.
There are three types of pipeline hazards:
Structural Hazard: When two or more instructions need the same unit of CPU
Data Hazard: An instruction needs to wait for a previous operation to be completed
Control Hazard: CPU can’t tell which instructions it needs to execute next
The third one probably got your attention. How could CPU not know which instruction to execute next? Imagine a simple If statement. When CPU reaches this type of branching, It cannot choose future instructions with 100% certainty. That's why there a set of tricks to remove branches from your program as much as possible called Branchless-Programming.
It's worth noting that compilers do a set of optimizations in regard of removing branches as well. So knowing how your compiler acts is essential to how you optimize your code.
#CPU #Pipelining #Branchless_Programming.
There are three types of pipeline hazards:
Structural Hazard: When two or more instructions need the same unit of CPU
Data Hazard: An instruction needs to wait for a previous operation to be completed
Control Hazard: CPU can’t tell which instructions it needs to execute next
The third one probably got your attention. How could CPU not know which instruction to execute next? Imagine a simple If statement. When CPU reaches this type of branching, It cannot choose future instructions with 100% certainty. That's why there a set of tricks to remove branches from your program as much as possible called Branchless-Programming.
It's worth noting that compilers do a set of optimizations in regard of removing branches as well. So knowing how your compiler acts is essential to how you optimize your code.
#CPU #Pipelining #Branchless_Programming.
Forwarded from Accio
Regarding to pipe-lining, they don't always result in optimization. There are times when you might run into obstacles called Pipeline Hazards.
There are three types of pipeline hazards:
Structural Hazard: When two or more instructions need the same unit of CPU
Data Hazard: An instruction needs to wait for a previous operation to be completed
Control Hazard: CPU can’t tell which instructions it needs to execute next
The third one probably got your attention. How could CPU not know which instruction to execute next? Imagine a simple If statement. When CPU reaches this type of branching, It cannot choose future instructions with 100% certainty. That's why there a set of tricks to remove branches from your program as much as possible called Branchless-Programming.
It's worth noting that compilers do a set of optimizations in regard of removing branches as well. So knowing how your compiler acts is essential to how you optimize your code.
#CPU #Pipelining #Branchless_Programming.
There are three types of pipeline hazards:
Structural Hazard: When two or more instructions need the same unit of CPU
Data Hazard: An instruction needs to wait for a previous operation to be completed
Control Hazard: CPU can’t tell which instructions it needs to execute next
The third one probably got your attention. How could CPU not know which instruction to execute next? Imagine a simple If statement. When CPU reaches this type of branching, It cannot choose future instructions with 100% certainty. That's why there a set of tricks to remove branches from your program as much as possible called Branchless-Programming.
It's worth noting that compilers do a set of optimizations in regard of removing branches as well. So knowing how your compiler acts is essential to how you optimize your code.
#CPU #Pipelining #Branchless_Programming.
Forwarded from LinNews (Reza)
مشکلات احتمالی در پردازندههای نسل جدید اینتل
#Intel #ArrowLake #CoreUltra200S #CPU #TechNews #Benchmark
منبع خبر
@LinAcademy | @LinNews
#Intel #ArrowLake #CoreUltra200S #CPU #TechNews #Benchmark
پردازندههای جدید اینتل که به زودی به بازار عرضه میشوند، ممکن است با مشکلات ناپایداری مواجه شوند.
طبق گزارشهای اخیر از یوتیوبر معروف
Moore’s Law Is Dead
پردازنده های Arrow Lake با اختلافهای قابل توجهی در بنچمارکها و همچنین مشکلاتی در عملکرد مواجه هستند.
برخی از بررسیکنندگان به اختلاف تا ۱۰ درصدی در نتایج تستها اشاره کردهاند و همچنین گزارشهایی از بروز مشکلاتی مانند صفحه آبی مرگ و قطع ارتباط در بازیهای آنلاین وجود دارد.
با این حال، به نظر میرسد که این مشکلات بیشتر به نرمافزار مربوط میشوند و ممکن است با یک بهروزرسانی میکروکد قابل حل باشند.
منبع خبر
@LinAcademy | @LinNews
Forwarded from LinNews (Reza)
امتیاز و مشخصات پردازنده های جدید AMD لیک شد.
#AMD #APU #CPU #GPU #AI_Max #TechNews #Benchmark
@LinAcademy | @LinNews
#AMD #APU #CPU #GPU #AI_Max #TechNews #Benchmark
پردازنده های جدید AMD که با مدل هایمنبع خبر
Ryzen AI Max Pro 390
Ryzen AI Max+ Pro 395
نام گذاری شدند.
مشخصات دو پردازنده جدید به این صورت است.
مشخصات Ryzen AI Max+ Pro 395 :
با سرعت پردازنده 3.00GHz
16 هسته و 32 رشته
گرافیک مجتمع 8060s
گرافیک مجتمع دارای 40 واحد پردازشی
مشخصات Ryzen AI Max Pro 390 :
با سرعت پردازنده 3.20GHz
احتمالا با 12 هسته و 24 رشته یا مشابه مدل دیگر
گرافیک مجتمع 8050s
گرافیک مجتمع دارای 32 واحد پردازشی
پردازنده های Ryzen AI Max Pro 390 و Ryzen AI Max+ Pro 395
به ترتیب 31% و 40% از نسل قبل یعنی
AMD Ryzen AI 370
عملکرد بهتری دارند.
نمره گرافیک مجتمع 8050s با کسب 16,663 امتیاز در بخش 3D و 8060s با کسب 15,965در بخش 3D است
که قدرت برابری با RTX 3060 12GB دارند.
@LinAcademy | @LinNews
Forwarded from LinNews (Benyamin)
اینتل با پشتیبانی جدید در لینوکس برای پردازنده های Nova Lake آماده میشود ــ سری ۲۰ ساله 6 Family به نفع 18 Family کنار میرود.
#Intel #Linux #CPU
این اقدام اینتل نشان دهنده جدایی کامل از فریمورک 6 Family است که همه پردازندهها را از Pentium Pro تا Arrow Lake (نسل فعلی) شامل میشود. سری 6 Family شامل پردازندههای اواخر دهه ۹۰ تا امروز است که معماری x86 دارند، بعلاوه این اولین بار در بیش از ۲ دهه است که اینتل پردازندههای قدیمی را بخاطر نسخههای جدید کنار میگذارد. پردازندههای سرور نیز در خانواده جداگانهای با نام Family 19 طبقهبندی میشوند.
منبع خبر
به ما بپیوندید :
@LinAcademy
#Intel #Linux #CPU
این اقدام اینتل نشان دهنده جدایی کامل از فریمورک 6 Family است که همه پردازندهها را از Pentium Pro تا Arrow Lake (نسل فعلی) شامل میشود. سری 6 Family شامل پردازندههای اواخر دهه ۹۰ تا امروز است که معماری x86 دارند، بعلاوه این اولین بار در بیش از ۲ دهه است که اینتل پردازندههای قدیمی را بخاطر نسخههای جدید کنار میگذارد. پردازندههای سرور نیز در خانواده جداگانهای با نام Family 19 طبقهبندی میشوند.
منبع خبر
به ما بپیوندید :
@LinAcademy
Forwarded from Gopher Academy
🔵 عنوان مقاله
How We Saved 70% CPU and 60% Memory in Refinery’s Go Code
🟢 خلاصه مقاله:
**تیم Refinery روی یک سرویس مهم مبتنی بر Go با مصرف بالای CPU و Memory کار میکرد و با پروفایلینگ دقیق (pprof، tracing و بنچمارکهای انتهابهانتها) گلوگاههای واقعی را پیدا کرد. بیشترین صرفهجویی با حذف کارهای غیرضروری بهدست آمد: حذف پردازشها و serialization تکراری، دوری از reflection در مسیرهای داغ، جایگزینی JSON در hot path با دسترسی مستقیم/کدگذاری ساده، پیشاختصاص slices/maps و بازاستفاده از بافرها برای کاهش allocation و فشار GC. در همروندی، بهجای goroutineهای بدونمهار، از worker poolهای محدود و backpressure استفاده شد، کارها batch و دادهها تا حد امکان stream شدند تا قفلزنی و جابهجایی زمینه کاهش یابد. همچنین چند حلقه O(n^2) با ایندکسگذاری مبتنی بر map/set جایگزین شد، نتایج گران با cache کردن تکرار نشد و الگوهای I/O با خواندن/نوشتن تجمیعی بهینه شدند. در نهایت با تکیه بر allocationهای روی stack، استفاده از sync.Pool و روشهای zero-copy، نیاز به GC پایین آمد. نتیجه: حدود 70% کاهش مصرف CPU و 60% کاهش Memory همراه با بهبود تاخیرهای p95/p99. درس کلیدی: بهینهسازی اغلب یعنی کمتر کار کردن—اندازهگیری کن، کار زائد را حذف کن و سادهسازی را تکرار کن.
#Go #Golang #Performance #Profiling #CPU #Memory #Optimization #pprof
🟣لینک مقاله:
https://golangweekly.com/link/176624/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How We Saved 70% CPU and 60% Memory in Refinery’s Go Code
🟢 خلاصه مقاله:
**تیم Refinery روی یک سرویس مهم مبتنی بر Go با مصرف بالای CPU و Memory کار میکرد و با پروفایلینگ دقیق (pprof، tracing و بنچمارکهای انتهابهانتها) گلوگاههای واقعی را پیدا کرد. بیشترین صرفهجویی با حذف کارهای غیرضروری بهدست آمد: حذف پردازشها و serialization تکراری، دوری از reflection در مسیرهای داغ، جایگزینی JSON در hot path با دسترسی مستقیم/کدگذاری ساده، پیشاختصاص slices/maps و بازاستفاده از بافرها برای کاهش allocation و فشار GC. در همروندی، بهجای goroutineهای بدونمهار، از worker poolهای محدود و backpressure استفاده شد، کارها batch و دادهها تا حد امکان stream شدند تا قفلزنی و جابهجایی زمینه کاهش یابد. همچنین چند حلقه O(n^2) با ایندکسگذاری مبتنی بر map/set جایگزین شد، نتایج گران با cache کردن تکرار نشد و الگوهای I/O با خواندن/نوشتن تجمیعی بهینه شدند. در نهایت با تکیه بر allocationهای روی stack، استفاده از sync.Pool و روشهای zero-copy، نیاز به GC پایین آمد. نتیجه: حدود 70% کاهش مصرف CPU و 60% کاهش Memory همراه با بهبود تاخیرهای p95/p99. درس کلیدی: بهینهسازی اغلب یعنی کمتر کار کردن—اندازهگیری کن، کار زائد را حذف کن و سادهسازی را تکرار کن.
#Go #Golang #Performance #Profiling #CPU #Memory #Optimization #pprof
🟣لینک مقاله:
https://golangweekly.com/link/176624/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Honeycomb
How We Saved 70% of CPU and 60% of Memory in Refinery’s Go Code, No Rust Required.
We've just released Refinery 3. 0 , a performance-focused update which significantly improves Refinery's CPU and memory efficiency.