ปัญหาประสิทธิภาพ CUDA ขึ้นอยู่กับระบบปฏิบัติการ


0

ฉันมี 2 เครื่องที่เหมือนกันกับฮาร์ดแวร์ ในนั้นฉันมี 1 Debian และ 1 บิลด์ที่กำหนดเองที่มีอิมเมจ buildroot linux

ปัญหาที่ฉันพบคือ:

สำหรับแอปพลิเคชันของฉันฉันได้รับประสิทธิภาพ 2x ประมาณสองเท่าในเครื่อง Debian ที่เกี่ยวข้องกับเครื่องสร้างภาพที่กำหนดเอง

ฉันพยายามที่จะเข้าใจสิ่งที่อาจทำให้เกิดความแตกต่างนี้

เวอร์ชั่น cuda คือ 7.5
เวอร์ชั่นของไดรเวอร์คือ:
Debian: 361.28
กำหนดเอง: 367.27

ข้อมูลบางอย่างที่อาจเกี่ยวข้อง:
ถ้าฉันเรียกใช้ DeviceQuery (จากตัวอย่าง cuda) บนเครื่องทั้งสองผลลัพธ์เกือบจะเหมือนกัน แต่ไม่เหมือนกัน:
ความแตกต่างที่ 1 อยู่ในสาย:
นี่คือ Debian:
จำนวนหน่วยความจำส่วนกลางทั้งหมด: 3069 MBytes
และ สิ่งนี้ใช้สำหรับกำหนดเอง:
จำนวนหน่วยความจำรวมทั้งหมด: 3008 MBytes
(แม้ว่าฉันสงสัยว่าความแตกต่างนี้อาจทำให้เกิดความแตกต่างด้านประสิทธิภาพที่กล่าวถึง)
ความแตกต่างอื่น ๆ คือ:
Debian:
จำกัด เวลารันบนเมล็ด: ใช่
กำหนดเอง:
จำกัด เวลาเรียกใช้บนเมล็ด : ไม่

(มี X server ในทั้งสองระบบ แต่ใน Custom กำหนดว่าเป็น barebones X ที่มี twm)

ถ้าฉันรันแบนด์วิดท์ทดสอบจากตัวอย่างผลลัพธ์จะเหมือนกันมากสำหรับ Host to Device Bandwidth, 1 อุปกรณ์และ Device to Host Bandwidth, 1 อุปกรณ์ แต่อาจแตกต่างกันอย่างมากสำหรับ Device to Device Bandwidth, 1 อุปกรณ์
ดังนั้นสำหรับค่ารายการสุดท้ายบน Debian อยู่ในพื้นที่ 100k MB / s (แม้ว่าบางครั้งมันจะลดลงเหลือประมาณ 63k)
สำหรับ Custom มันจะอยู่ในระดับ 63k อย่างสม่ำเสมอ

ฉันจะดีใจถ้าคุณสามารถช่วยฉันด้วยคำแนะนำเกี่ยวกับสิ่งที่ฉันควรตรวจสอบเพิ่มเติมและสิ่งที่อาจเป็นปัญหา
ขอขอบคุณ!

UPD: ฉันได้ลองใช้เซิร์ฟเวอร์ X บนระบบที่กำหนดเองโดยใช้ nvidia (การรัน X ด้วย intel จะไม่ส่งผลกระทบต่อความสมบูรณ์แบบในทางที่สังเกตได้) มันยังไม่เริ่มต้นเต็มที่ แต่ก็ไม่ล้มเหลว
ข้อเท็จจริงที่น่าสนใจ - ถ้าฉันเริ่มต้นแอปพลิเคชันของฉันเมื่อ X อยู่ในสถานะเริ่มครึ่งนี้ - ประสิทธิภาพลดลงมากขึ้น (ลดลงมากกว่า 4x จาก Debian ทั้งหมด)

อัปเดต2 : ฉันเพิ่งลองอัปเดตเป็น CUDA 8 บนเครื่องที่กำหนดเอง - ยังไม่ได้เปลี่ยนสถานการณ์ที่อธิบายไว้

Upd3 : http://cuda-z.sourceforge.net/ แสดง 2x หรือมากกว่านั้นในระบบ Custom สำหรับการทำงานทุกประเภทที่สามารถวัดได้ (และเกือบ 2 เท่าสำหรับการคัดลอกหน่วยความจำอุปกรณ์)


บรรทัด 100k MB / s หรือไม่ ว้าวฉันอยากได้แบบนั้น ในความคิดที่สองฉันต้องการอะไรที่มีอยู่ทั้งหมด
MariusMatutiae

นั่นเป็นวิธีที่เอาต์พุตคำสั่งมีลักษณะ :): อุปกรณ์กับแบนด์วิดท์อุปกรณ์, 1 อุปกรณ์ PINNED หน่วยความจำขนาดการถ่ายโอนการถ่ายโอน (ไบต์) แบนด์วิดท์ (MB / s) 33554432 99241.2
Stvad

คำตอบ:


0

ตกลงสิ่งที่ช่วยได้ในที่สุดก็คือการอัปเดตวิธีติดตั้งไดรเวอร์ของ nvidia เพื่อรับชุด utv ของ nvidia แบบเต็ม (เปลี่ยนค่าเริ่มต้น buildroot nvidia mk) และเรียกใช้แอปพลิเคชันหลังจากเริ่มต้นเซิร์ฟเวอร์ X แม้ว่าสิ่งนี้จะยังคงเหมือนเดิม: จำกัด เวลารันบนเมล็ด: ไม่

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