NVIDIA เปิดตัวภาษา CUDA 6 สำหรับการเขียนโปรแกรมบน GPU ของตัวเองโดยมีความสามารถสำคัญคือ Unified Memory หรือการมองหน่วยความจำของซีพียูและจีพียูเป็นผืนเดียวกัน ทำให้สามารถพัฒนาซอฟต์แวร์ได้ง่ายขึ้น
การมองหน่วยความจำของซีพียูและจีพียูเป็นผืนเดียวกันเป็นความสามารถสำคัญของสถาปัตยกรรม HSA ในกรณีของเอเอ็มดี ชิปรุ่นหลังๆ นั้นมีจีพียูมาในตัวและใช้หน่วยความจำร่วมกับซีพียูอยู่แล้ว การมองหน่วยความจำเป็นผืนเดียวกันจึงค่อนข้างสมเหตุสมผล แต่สำหรับ NVIDIA ที่ยังขายชิปกราฟิกเป็นการ์ดอยู่นั้น การจัดการหน่วยความจำอัตโนมัติจะมีประสิทธิภาพเพียงใดยังต้องรอดูประสิทธิภาพจริง เพราะหากจัดการได้ไม่ดีพอ ข้อมูลจะเสียเวลาเดินทางไปมา มากกว่าที่จะทำงานประมวลผลจริง
นอกจาก Unified Memory แล้ว CUDA 6 ยังเพิ่มไลบรารีใหม่ให้เร่งความเร็วการประมวลผล FFT และ BLAS โดยไลบรารีใหม่รองรับจีพียูได้ถึง 8 ตัว
ซอฟต์แวร์จริงจะเปิดให้ทดลองใช้งานต้นปี 2014
ที่มา - NVIDIA
Comments
ถ้าไม่ใช่ onboard,APU แล้วการแชร์แรมร่วมกันมันจะมีประสิทธิภาพได้อย่างไร เพราะความเร็วของแรมระบบ กับแรมบนGPU ปกติก็แตกต่างกันมากอยู่แล้ว ยกเว้นGPUรุ่นล่างๆที่ใช้แรมความเร็วต่ำ หรือแค่64bit
ถ้าการจัดการแรมฉลาดพอ ในงานหลายๆ อย่างก็เพิ่มประสิทธิภาพได้ครับ
อย่างทุกวันนี้ที่เราทำงานกันก็ย้ายข้อมูลไปมา แต่งานมันย้ายข้อมูลน้อยพอ ประสิทธิภาพก็ดีขึ้น
lewcpe.com, @wasonliw
กรณีของ CUDA เค้าเน้นใช้ในงานคำนวณ แล้วมักจะแบ่งงานคำนวณไปทั้ง CPU ร่วมกับ GPU แล้วบางครั้งต้องดึงข้อมูลไปมาระหว่างกันอยู่บ่อยๆ(ทั้งอ่านทั้งเขียน) จากเดิมต้อง copy ข้อมูลมาใส่แรมของตัวเองก่อนแล้วคำนวณให้เสร็จแล้วค่อยส่งกลับ การแชร์แรมร่วมกันให้อ่านและเขียนได้โดยตรงจะเร็วกว่าเดิมมาก
ทำไมเราไม่ใช้ gpu ประมวลผลให้หมดเลยไม่ต้องใช้ cpu
เดี่ยว intel เจ๊ง ครับ
ถึงตอนนั้นเราก็จะเรียกว่า GPU ว่า CPU ครับ
ไม่มีอะไรมากำหนดว่า CPU ต้องเป็นแกนใหญ่ซับซ้อนประสิทธิภาพสูง ซีพียูรุ่นใหม่ๆ ก็ซอยคอร์เล็กลงกัน ระบบในงานวิจัยมีซีพียูที่ลักษณะเป็นแกนเล็กๆ ทำงานคล้าย GPU กันบ้าง
lewcpe.com, @wasonliw
สาเหตุเดียวกับ cell แหละครับ เพราะมันไม่รองรับ x86
มันทำงานได้เร็วกว่าเฉพาะงานที่เป็น Parallel นะครับ (ซึ่งไม่ใช่ทั้งหมด)
มันน่าจะเก่งกันคนละอย่างนะ CPU อาจจะเก่งที่สลับงานได้เร็ว เพราะเป็นคนที่ต้องสลับงานทำ multi tasking เสมอ ๆ แต่ GPU อาจจะคำนวณได้เร็วแต่สลับงานได้ช้า อ้ะป่าว ?
งานพวกที่เป็น Single Task ก็ยังต้องพึ่งพา CPU อยู่ครับ ถ้าพวก Multitask ที่มีเยอะมากๆ การใช้การ์ดจอก็เป็นอีกตัวเลือกหนึ่งครับ
แปลกเหมือนกันทำไมไม่ใช้การ์ดจอ GPU คำนวณแทน CPU ให้หมดไปเลย ทั้งที่ GPU สมัยนี้แรงกว่า CPU หลายตัวมากแล้ว
หลายโปรแกรมรันกับ CPU แล้วโครตช้า แต่พอรันด้วย GPU วิ่งเร็วฉิวเลย (อย่างพวก Guiminer หนึ่งใน Bitcoin) ซึ่งความเร็วต่างกัน 10 เท่าเลยนะครับ -"-
1 เขียนให้ทำงานบน GPU ด้วยมันยากกว่าเขียนบน cpu เดี่ยวๆ ครับ
2 ไมม่ใช่งานทุกประเภทที่เหมาะกับ GPU ครับ
เท่าที่อ่านดูเหมือนว่า จะเป็นลักษณะทำ virtual address space ผ่าน library
ซึ่งแน่นอนว่า มันจะทำให้การพัฒนาสะดวกขึ้น เพราะหน้าที่ในการ copy ข้อมูลข้ามไปมาจะถูกทำโดยอัตโนมัติ
ผ่าน library ซึ่งเอาเข้าจริงถึงเวลา ก็ optimize ได้ไม่เท่าแบบ manual เพราะ application ควบคุมได้ละเอียดกว่า
Solution นี้ก็ยังไม่ไปที่สุดเหมือน HSA