คำถามติดแท็ก cpu

CPU เป็นคำย่อของหน่วยประมวลผลกลาง บางครั้งเรียกง่ายๆว่าโปรเซสเซอร์กลาง แต่เรียกกันทั่วไปว่าโปรเซสเซอร์

7
เมื่อใดที่ฉันควรจะลดปริมาณการทำงานให้กับ GPU แทนที่จะเป็น CPU?
มีการสร้างระบบใหม่เช่นOpenCLขึ้นเพื่อให้เราสามารถเรียกใช้โค้ดในตัวประมวลผลกราฟิกของเรามากขึ้นเรื่อย ๆ ซึ่งเหมาะสมเพราะเราควรจะสามารถใช้ประโยชน์จากพลังที่มากที่สุดในระบบของเราได้มากที่สุด อย่างไรก็ตามด้วยระบบใหม่ทั้งหมดนี้ดูเหมือนว่า GPU จะดีกว่า CPU ในทุกด้าน เนื่องจาก GPU สามารถทำการคำนวณแบบขนานได้ GPU แบบมัลติคอร์จึงดูเหมือนว่าพวกเขาจะดีกว่าซีพียูแบบมัลติคอร์มาก คุณสามารถทำการคำนวณหลาย ๆ อย่างในครั้งเดียวและปรับปรุงความเร็วได้อย่างแท้จริง ยังมีบางกรณีที่การประมวลผลแบบอนุกรมยังดีกว่าเร็วขึ้นและ / หรือมีประสิทธิภาพมากกว่าแบบขนานหรือไม่
15 optimization  cpu  gpu 

2
การนอนด้ายทำงานอย่างไร
เมื่อคุณนอนหลับสิ่งที่เกิดขึ้นจริงคืออะไร? ผมเห็นว่าการนอนหลับหัวข้อ"หยุดเธรดปัจจุบันเป็นระยะเวลาที่กำหนดของเวลา" แต่มันทำงานอย่างไร ตามที่Thread.sleep () ทำงานภายในและThread.sleep ทำงานอย่างไรจริง ๆ : ระยะเวลาสลีปจะขึ้นอยู่กับความละเอียดเฉพาะของระบบ การนอนหลับกำลังปิดกั้น เธรดออกจาก CPU และหยุดการทำงาน เธรดไม่ใช้เวลา CPU ในขณะหลับ ฉันไม่เข้าใจกลไกภายในและพื้นฐานของความหมายทั้งหมดนี้ ฉันเข้าใจว่ามีบางสิ่งที่เรียกว่าตัวกำหนดตารางเวลาที่รับผิดชอบในการสลับระหว่างเธรด ดูเหมือนแหล่งที่มาจะบ่งบอกว่าสิ่งนี้จะแตกต่างกันไปตามระบบปฏิบัติการ (หรือฮาร์ดแวร์?) และเธรดส่วนใหญ่จะได้รับ 1ms - 60ms หรือมากกว่านั้นเพื่อดำเนินการบางอย่างก่อนที่ CPU จะเปลี่ยนไปใช้เธรดอื่น แต่เมื่อเธรดหลับ (เช่นหลายวินาที) มันจะทำงานต่อได้อย่างไร? ฉันคาดเดาว่าตัวจับเวลามีส่วนเกี่ยวข้องอย่างใดอย่างหนึ่งมันเป็นนาฬิกาของเมนบอร์ดหรือไม่ มันเกี่ยวข้องกับอัตราสัญญาณนาฬิกาของ CPU หรือไม่ และแม้ว่าจะมีการจับเวลาก็ตามซีพียูรู้ได้อย่างไรว่าถึงเวลาที่ต้องใส่ใจกับเธรดอีกครั้ง มันจะไม่ต้องตรวจสอบในด้ายอย่างต่อเนื่องเพื่อดูว่ามันพร้อมหรือไม่ ไม่ได้ที่มีประสิทธิภาพการลงคะแนนเลือกตั้งและดังนั้นจึงชนิดของการจะใช้เวลานาน CPU? กำลังนอนหลับภาษาเฉพาะของเธรดหรือระบบปฏิบัติการรับผิดชอบหรือไม่หรือเป็นสิ่งที่จำเพาะกับ CPU ใครช่วยอธิบายสิ่งนี้ให้ฉันด้วยคำอธิบายพื้นฐานของสิ่งต่าง ๆ เช่นตัวกำหนดตารางเวลาและซีพียูกำลังทำอะไรอยู่ในระหว่างนี้?

4
บรรทัดของโค้ดถูกเรียกใช้งานโดย CPU อย่างไร
ฉันพยายามที่จะเข้าใจจริงๆว่าภาษาระดับสูงถูกแปลงเป็นรหัสเครื่องอย่างไรและดำเนินการโดย cpu ฉันเข้าใจว่ารหัสถูกรวบรวมเป็นรหัสเครื่องซึ่งเป็นรหัสระดับต่ำที่ CPU สามารถใช้ได้ ถ้าฉันมีคำสั่งมอบหมายพูด: x = x + 5; y = x - 3; CPU ดำเนินการทีละบรรทัดหรือไม่? ดังนั้นก่อนจะดำเนินการ x = x + 5; คำสั่งแล้วคำสั่งถัดไปที่ CPU จะดำเนินการคือ y = x- 3; ฉันพยายามเข้าใจขั้นตอนการดำเนินการจริง ๆ และวิธีการที่โค้ดที่ฉันเขียนนั้นถูกใช้งานจริงโดย CPU

4
อะไรคือความหมายของประโยค“ เราต้องการให้มันถูกคอมไพล์ดังนั้นมันจึงไม่เผาซีพียูทำสิ่งที่ผิด”
ผมอ่านนี้บทความ มันมีย่อหน้าต่อไปนี้ และสกาล่ากลายเป็นว่าเร็วหรือไม่? คุณนิยามคำว่า fast อะไร เกี่ยวกับเร็วเท่า Java ไม่จำเป็นต้องเร็วเท่ากับ C หรือ Assembly Python ไม่เร็วกว่า Ruby อย่างมีนัยสำคัญ เราต้องการทำมากขึ้นด้วยเครื่องจักรที่น้อยลงใช้ประโยชน์จากการทำงานพร้อมกันได้ดี เราต้องการที่จะรวบรวมดังนั้นจึงไม่เผาซีพียูทำสิ่งที่ผิด ฉันกำลังมองหาความหมายของประโยคสุดท้าย ภาษาที่แปลจะทำให้ซีพียูทำสิ่งที่ "ผิด" อย่างไร

3
ทำไมคอมไพเลอร์โดยทั่วไปสร้างไฟล์ปฏิบัติการสำหรับแพลตฟอร์มที่ติดตั้งไว้เท่านั้น?
ฉันเป็นนักพัฒนา C ++ และในความพยายามที่จะเข้าใจการพัฒนาข้ามแพลตฟอร์มได้ดียิ่งขึ้นฉันพยายามทำความเข้าใจกับรายละเอียดการใช้งานคอมไพเลอร์ให้ดีขึ้นและพวกเขาสร้างไบนารีเฉพาะระบบปฏิบัติการได้อย่างไร ในระหว่างการศึกษาของฉันฉันรู้ว่าอย่างน้อยก็ชั่วขณะคอมไพเลอร์ส่วนใหญ่ที่คุณดาวน์โหลดสำหรับแพลตฟอร์มเฉพาะรวบรวมไบนารีสำหรับแพลตฟอร์มนั้นเท่านั้น ดังนั้นถ้าคุณดาวน์โหลด IDE ที่มาพร้อมกับคอมไพเลอร์ exe สำหรับ Windows คอมไพเลอร์นั้นจะสามารถรวบรวมโปรแกรมของคุณสำหรับแอปพลิเคชัน windows x86-x64 และไม่ใช่แอปพลิเคชัน Linux หรือ Mac ตอนนี้ฉันเข้าใจแล้วว่าแพลตฟอร์มต่าง ๆ ต้องการรูปแบบไบนารีที่แตกต่างกัน แต่สิ่งที่ทำให้พูดคอมไพเลอร์ Visual C ++ บน windows เพื่อสร้างไฟล์ปฏิบัติการไบนารีของ linux ทำได้ยาก? ตราบใดที่คุณมีคำแนะนำการประกอบสำหรับ CPU ที่คุณใช้งานอยู่รวมถึงไลบรารีเฉพาะของ OS คุณไม่ควรรวบรวม exectuables สำหรับแพลตฟอร์มใด ๆ บนเครื่องใด ๆ

3
มี CPU ที่ดำเนินการเพิ่มประสิทธิภาพการเขียนแคช L1 ที่เป็นไปได้หรือไม่
เมื่อ CPU ที่มีแคช L1 ทำการเขียนสิ่งที่เกิดขึ้นตามปกติคือ (สมมติว่าบรรทัดแคชที่กำลังเขียนอยู่ในแคช L1 อยู่แล้ว) แคช (นอกเหนือจากการอัปเดตข้อมูล) ทำเครื่องหมายว่าบรรทัดแคชนั้นสกปรก และจะเขียนบรรทัดที่มีข้อมูลที่ปรับปรุงในภายหลัง การปรับให้เหมาะสมอย่างหนึ่งที่เป็นไปได้คือให้แคชเปรียบเทียบเนื้อหาของการเขียนและเนื้อหาก่อนหน้าของแคชและถ้ามันเหมือนกันอย่าทำเครื่องหมายบรรทัดว่าสกปรก เนื่องจากสิ่งนี้อาจทำให้แคชสามารถหลีกเลี่ยงการเขียนกลับในบางโอกาสฉันสามารถดูว่าผู้ผลิต CPU อาจเห็นสิ่งนี้ว่าคุ้มค่ากับประตูที่ต้องใช้ในการทำตรรกะนี้ คำถามของฉัน: มีซีพียูที่ทำงานเพิ่มประสิทธิภาพนี้หรือไม่? ข้อมูลพื้นฐานเกี่ยวกับสาเหตุที่ฉันถาม: ฉันกำลังเขียนโค้ดบางอย่างที่จำเป็นต้องมีการเข้าถึงหน่วยความจำคงที่ นั่นคือคนที่สามารถฟังพฤติกรรมของแคชไม่ควรอนุมานสิ่งที่ฉันทำ การเข้าถึงของฉันบางอย่างเป็นการเขียนและวิธีที่ชัดเจนในการใช้รหัสนี้การเขียนจำนวนมากจะเขียนข้อมูลเดียวกันกับที่มีอยู่แล้ว ฉันต้องทำการเขียนเพราะขึ้นอยู่กับข้อมูลข้อมูลที่ฉันเขียนอาจจะเหมือนกันหรือไม่เหมือนกันและเป็นสิ่งสำคัญที่จะต้องดำเนินการเดียวกันโดยไม่คำนึงถึง หาก CPU ปรับให้เหมาะสมโดยการไม่เขียน 'no-change-write' นั่นหมายความว่าพฤติกรรมของแคชจะแตกต่างกันไปขึ้นอยู่กับสิ่งที่ฉันทำซึ่งจะทำลายเป้าหมายของฉัน ดังนั้นมี CPU ที่พยายามเพิ่มประสิทธิภาพการเขียนด้วยวิธีนี้หรือไม่
9 caching  cpu 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.