ซีพียูหลายคอร์ยังคงประสบปัญหาผลตอบแทนลดลงในโลกปัจจุบันหรือไม่?


9

มันแสดงให้เห็นในคำถามอื่น ๆว่าเนื่องจากสถานะของการใช้งานคอมพิวเตอร์โปรเซสเซอร์แบบ multi-core ประสบผลตอบแทนลดลง ยังคงเป็นกรณีนี้ในโลกปัจจุบันหรือไม่?

แอปพลิเคชันใหม่ส่วนใหญ่ใช้มัลติเธรดและใช้ประโยชน์จากการมีหลายคอร์หรือไม่? ถ้าไม่มีให้ทำเช่นนั้นระบบปฏิบัติการ 64- ​​บิตที่ใหม่กว่าใช้ประโยชน์จากแกนประมวลผลโดยการกำหนดภารกิจ / กระบวนการให้กับแกนประมวลผลอื่นหรือไม่? หรือโปรเซสเซอร์แบบมัลติคอร์ยังคงประสบกับผลตอบแทนที่ลดลงเหมือนกัน (หรือคล้ายกัน)?

โปรดสำรองการเรียกร้องใด ๆ ที่มีการอ้างอิง


2
การใช้ระบบปฏิบัติการ x64 จะไม่สร้างความแตกต่างใด ๆ เมื่อคุณมีโปรแกรมที่มีหลายเธรด ความแตกต่างของคอมไพเลอร์ภูมิทัศน์ระหว่างปี 2008 และ 2012 มีขนาดใหญ่มาก จนกว่าจะมีวิธีง่าย ๆ ในการดำเนินการกับหลายเธรดการมี CPU ที่มีความสามารถในการดำเนินการหลายเธรดในคราวเดียวนั้นไม่มีประโยชน์ แม้กระทั่งทุกวันนี้มันยังไม่ง่ายพอที่จะทำเช่นนั้น
Ramhound

คำตอบ:


7

ขึ้นอยู่กับว่าคุณทำอะไรมาก

สำหรับ ol 'Word และ Excel และ Minesweeper ปกติและสิ่งอื่น ๆ ที่แม่ของคุณใช้อยู่หนึ่งคอร์ยังคงเพียงพอและมากกว่าสองคือ overkill แอปพลิเคชันประเภทนี้ใช้เวลาส่วนใหญ่ในการรอการรอข้อมูลจากผู้ใช้

สำหรับการเล่นเกมคุณจะได้รับประโยชน์อย่างน้อยสอง หลังจากนั้นขึ้นอยู่กับเกม ในทางทฤษฎีคุณสามารถรันคู่ต่อสู้ AI แต่ละคนในเธรดแยกต่างหาก แต่ตรรกะของเกมกลางไม่สามารถทำให้ขนานกันได้อย่างง่ายดาย - คุณต้องมีที่เดียวที่ผลลัพธ์ทั้งหมดจะรวมเข้าด้วยกันเพื่อสร้างสถานะของเกมที่สอดคล้องกัน ดังนั้นจึงมักจะมีหนึ่งหัวข้อ "หลัก" ที่ทุกคนรอ

สำหรับมัลติมีเดียการคำนวณจำนวนจริงและวิทยาศาสตร์ทุก ๆ คอร์นับเป็นสิ่งสำคัญ สิ่งเหล่านี้เป็นงานที่มีหลายเธรดหรือสามารถทำได้โดยง่ายและผู้พัฒนามีแรงจูงใจอย่างมากที่จะใช้ประโยชน์จากพลังการประมวลผลที่มีอยู่ทั้งหมด

ผู้ใช้ระดับสูงชอบมัลติทาสก์ Torrent, VirtualBox, การจับภาพหน้าจอ, วิดีโอ, Minecraft และการท่องเว็บทั้งหมดทำงานในเวลาเดียวกัน ดังนั้นคุณจะได้รับประโยชน์จากแอพที่หิว CPU แต่ละตัวที่มีแกนของตัวเอง ทุกวันนี้มันเป็นที่นิยมในการถ่ายทอดสดเกมของคุณ ดังนั้นนั่นคือสองคอร์สำหรับเกมอย่างน้อยหนึ่งคอร์เธรดสำหรับเข้ารหัสและอย่างน้อยหนึ่งคอร์สำหรับส่วนที่เหลือของระบบ นั่นคืออย่างน้อย 4 แกน


1
โดยทั่วไปแล้วเกม AI ที่ดีนั้นยากกว่าการกระทบยอดหลาย ๆ อย่าง นั่นเป็นเพียงการเพิ่มแฟนซี ประการที่สองคุณเข้าใจเกมที่มีสถานะเป็นศูนย์กลางเกมเดียว นั่นไม่จำเป็นต้องเป็นความจริงเช่นกัน แม้ว่าจะเป็นเช่นนั้นก็ไม่จำเป็นต้องเป็นอุปสรรคในการทำเกลียวเช่นกัน เช่นการคำนวณทางฟิสิกส์มักจะทำแบบคู่ขนาน และในที่สุดเกมก็มีส่วนการแสดงผลกราฟิกขนาดใหญ่ซึ่งนำไปสู่การทำเกลียวเช่นกัน
MSalters

ฉันสงสัยหลักเดียวคือเคยทางเลือกที่เหมาะสม (เพียงแค่ใส่สูตรจริงๆช้าลงใน Excel ... ) และฉันคิดว่าคุณกำลังลดความซับซ้อนมากกว่าเล็กน้อย ยกตัวอย่างเช่นคุณสมบัติ Turbo Core (AMD) / Turbo Boost (Intel) ของโปรเซสเซอร์รุ่นใหม่ มันช่วยให้เอเอ็มดี hex-core ของฉันจอดครึ่งแกนของมันและเรียกใช้อีกครึ่งหนึ่งด้วยอัตราสัญญาณนาฬิกาที่เร็วขึ้น - และฉันเชื่อว่าเวอร์ชั่นของ Intel นั้นมีความละเอียดยิ่งขึ้น มัน. นั่นทำให้พวกเขาเป็นทางเลือกที่ดีกว่าหรือไม่? ปัญหานี้สามารถแก้ไขได้อย่างแม่นยำโดยการวัดและการวัดในโลกแห่งความจริง
DMA57361

ฉันเห็นด้วยอย่างสมบูรณ์กับ @ DMA57361 ไม่กี่ปีที่ผ่านมาลุงของฉันซื้อคอมพิวเตอร์ AMD core หลายเครื่องสำหรับเด็กก่อนวัยรุ่นของเขา กระบวนการพื้นหลัง (Windows Update เป็นผู้กระทำความผิดที่ร้ายแรงที่สุด) แสดงผลเป็นประจำไม่สามารถใช้งานได้ในเวลาละหลายนาทีโดยการใช้ CPU จนเต็ม
Dan Neely

อย่าลืมไฮเปอร์เธรด โปรเซสเซอร์ Intel ขั้นสูงเพิ่มเติมสามารถจำลองหน่วยประมวลผลหลักพิเศษได้โดยจัดให้มีชุดรีจิสเตอร์พิเศษในแต่ละคอร์และอนุญาตให้เธรดใช้ส่วนต่าง ๆ ของโปรเซสเซอร์แต่ละคอร์ในเวลาเดียวกันเพื่อเพิ่มประสิทธิภาพการทำงานมัลติทาสก์เพิ่มเติม
bwDraco

การเรนเดอร์ 3D เป็นอีกสิ่งหนึ่งที่แสดงให้เห็นถึงความได้เปรียบอย่างมาก หากคุณเป็นอนิเมเตอร์หรือนักออกแบบกราฟิกและทำผลงานมากมาย ซอฟต์แวร์ระดับมืออาชีพทั้งหมดมีข้อได้เปรียบในการใช้ประโยชน์จากแกนประมวลผลทุกเครื่องที่คุณมีให้ (และอื่น ๆ ในกรณีของเครือข่ายกลุ่ม) ประสิทธิภาพจะเพิ่มขึ้นตามจำนวนแกน
Jason C

5

ฉันเกรงว่าคำตอบจะยังคงเหมือนเดิม "ขึ้นอยู่กับสิ่งที่คุณทำ"

ใช่มีผลตอบแทนลดลงจากการเพิ่มแกนมากขึ้นและมากขึ้นและมีจะเป็น ถ้าคุณจะเรียกใช้โปรแกรมประยุกต์เดียวในเวลา

แม้ในแอพพลิเคชั่นแบบมัลติเธรดที่ได้รับการออกแบบมาเป็นอย่างดีงานหลายอย่างที่ถูกเธรดออกก็ทำเพื่อรอส่วนประกอบที่ช้าที่สุดในเครื่อง - ฮาร์ดไดรฟ์เครือข่าย - โดยไม่มีผลกระทบต่อประสิทธิภาพที่ชัดเจนสำหรับผู้ใช้ สิ่งเหล่านี้ไม่สามารถปรับปรุงได้โดยการขนานที่มากขึ้นดังนั้นการ จำกัด ความเร็วในเชิงทฤษฎีใด ๆ ก็ไม่สามารถเข้าถึงได้เพื่อวัตถุประสงค์ในทางปฏิบัติ

เป็นที่น่าสังเกตว่ามีแอปพลิเคชั่น "ใหญ่" จำนวนน้อยที่ไม่ได้ทำงานแบบหลายเธรด (เพียงตรวจสอบ Task Manager ที่เทียบเท่ากับระบบปฏิบัติการของคุณมันควรจะบอกได้ว่ามีกี่กระบวนการในแต่ละกระบวนการ - Firefox ของฉันใช้ 31 เป็นต้น )

แน่นอนว่าการใช้งานแอพพลิเคชั่นที่ไม่พึ่งพาซึ่งกันหลายอย่างนั้นไม่ได้ จำกัด ตามข้อ จำกัด เหล่านี้ ในขณะที่คุณเพิ่มคอร์มากขึ้นคุณสามารถรันแอพพลิเคชั่นได้มากขึ้นพร้อมกันด้วยประสิทธิภาพการประมวลผลที่ลดลงเล็กน้อย (ฮาร์ดไดรฟ์เครือข่ายและประสิทธิภาพการทำงาน ฯลฯ ไม่ได้ปรับขนาดเหมือนกัน) ในทางปฏิบัติแม้แต่สิ่งนี้ก็เช่นกันอาจลดผลตอบแทนลงเนื่องจากมีค่าใช้จ่ายที่หลีกเลี่ยงไม่ได้ในการจัดการการกระจายงานระหว่างคอร์ท่อการสื่อสารและอื่น ๆ

ตัวอย่างเช่นนี้โพสต์ฮาร์ดแวร์ของทอม (จาก 2009) พยายามที่จะมองไปที่ประสิทธิภาพการทำงานของโปรเซสเซอร์แบบมัลติคอไม่กี่ภายใต้การใช้งานพร้อมกัน - วิ่งเกมทางด้านการสแกน AVG (ซึ่งทั้งสองอาจจะเป็นแบบมัลติเธรด) โปรเซสเซอร์ Quad-, tri- และ dual-core ทั้งหมดทำงานคล้ายกับเกมเท่านั้น แต่เพิ่มการสแกน AVG พร้อมกันและประสิทธิภาพ (วัดโดย FPS เฉลี่ย) ลดลง 22%, 40% และ 59% ตามลำดับ

ดังนั้นในขณะที่ Quad Core ไม่ได้เพิ่มประสิทธิภาพในการทำงานมากกว่า Dual Core เมื่อใช้งานแอพพลิเคชั่นที่เข้มข้นเพียงแอปพลิเคชั่นที่เข้มข้นเพียงอย่างเดียว น่าเสียดายที่ฉันไม่สามารถหาสิ่งอื่น ๆ อีกมากมายที่ตรวจสอบว่าเครื่องชั่งนี้มีคอร์มากขึ้นและทำงานที่เข้มข้นมากขึ้นได้อย่างไร


จากนั้นคุณต้องจดบันทึกคุณสมบัติที่ทันสมัยของโปรเซสเซอร์เช่น Turbo Boost ของ Intel / Turbo Core ของ AMD คุณสมบัติเฉพาะเหล่านี้ช่วยให้โปรเซสเซอร์แบบมัลติคอร์มีแกนประมวลผล (ใส่ลงในโหมดที่ช้ากว่าพลังงานต่ำ) และใช้พลังงานสำรองเพื่อโอเวอร์คล็อกแกนที่ยังคงทำงานอยู่ - ทำให้โปรเซสเซอร์สามารถปรับตัวเองเพื่อให้ได้พลังการประมวลผลมากที่สุด มากที่สุดเท่าที่จะเป็นไปได้สำหรับจำนวนงานที่แสดงด้วย


2

สำหรับการเพิ่มเชื้อเพลิงให้กับไฟฉันอ่านที่นี่ว่า Android ชะลอตัวลงจริง ๆ โดยมีแกนหลักมากกว่าหนึ่งอัน:

การใช้ตัวประมวลผลแบบมัลติคอร์ทำให้อุปกรณ์ Android ช้าลงจริง ๆ นายไมค์เบลล์ผู้จัดการทั่วไปของกลุ่มมือถือและการสื่อสารของอินเทลกล่าวโทษผู้ที่กล่าวโทษความสามารถในการทำเธรดหลายเธรดของ Android หรือไม่สามารถทำได้

ยิ่งแกนมีอุปกรณ์มากเท่าไหร่ก็ยิ่งต้องใช้พลังงานมากเท่านั้นและในขณะนี้ปริมาณพลังงานนั้นก็มากเกินไปสำหรับอุปกรณ์ Android ที่จะรักษาสมดุล


อืมจะไม่แก้ไขคำถามนี้ให้ดีขึ้นใช่ไหม
Geek

ฉันคิดว่ากระทู้ทั้งหมดนี้จะถูกแปลงเป็นวิกิชุมชน / คำถามที่พบบ่อยและคิดว่ามันจะเป็นการดีที่สุดที่จะทิ้งคำถามตามที่เป็นอยู่และเพิ่มสิ่งนี้แยกกัน @Moderators - คำตอบนี้ควรถูกรวมเข้ากับคำถาม
rishimaharaj

0

แน่นอนมันขึ้นอยู่กับสิ่งที่คุณทำ แต่ใช่มีผลตอบแทนลดลง

แอพพลิเคชั่นที่ใช้งานง่าย ๆ ในชีวิตประจำวันเช่นการประมวลผลคำหรือการท่องเว็บได้ประโยชน์เพียงเล็กน้อยจากการมีแกนประมวลผลมากกว่าสองแกน การคำนวณทางวิทยาศาสตร์และแอพพลิเคชั่นการเล่นเกมมีแนวโน้มที่จะใช้ประโยชน์จากแกนประมวลผลสี่แกน (หรือมากกว่า) และ / หรือความสามารถในการไฮเปอร์เธรดมากขึ้นเนื่องจากพวกมันมีแนวโน้มที่จะได้รับการออกแบบ

นอกจากนี้ไม่ใช่ทุกสิ่งที่คำนวณได้ การเพิ่มตัวประมวลผลหลักจะไม่ช่วยถ้าภาระงานของคุณคือ I / O ที่ถูกผูกไว้ หากคุณเคยติดตั้ง SSD เพื่อแทนที่ฮาร์ดไดรฟ์แบบกลไกคุณอาจจะรู้ว่าประสิทธิภาพการประมวลผลในชีวิตประจำวันนั้นถูก จำกัด บ่อยกว่าที่เก็บข้อมูลของคอมพิวเตอร์ของคุณ ในสภาพแวดล้อมเซิร์ฟเวอร์ที่ยุ่งซึ่งใช้คอร์จำนวนมากเพื่อให้ระบบสามารถจัดการกับผู้ใช้จำนวนมากและการร้องขอพร้อมกันได้มีการใช้ดิสก์อาร์เรย์พิเศษ SSD และระบบจัดเก็บข้อมูลอื่น ๆ เพื่อให้แน่ใจว่ามีประสิทธิภาพสูงสุดภายใต้โหลด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.