แพคเกจซอฟต์แวร์นี้ให้การสนับสนุนขั้นพื้นฐานสำหรับ Intel(R) Resource Director Technology (Intel(R) RDT) และ Intel(R) I/O Resource Director Technology (Intel(R) I/O RDT) รวมถึง: Cache Monitoring Technology (CMT) , การตรวจสอบแบนด์วิธหน่วยความจำ (MBM), เทคโนโลยีการจัดสรรแคช (CAT), การจัดลำดับความสำคัญของโค้ดและข้อมูล (CDP) และการจัดสรรแบนด์วิธหน่วยความจำ (MBA)
โดยหลักการแล้ว ซอฟต์แวร์จะโปรแกรมเทคโนโลยีผ่าน Model specific Registers (MSR) บนพื้นฐานเธรดฮาร์ดแวร์ การเข้าถึง MSR จัดการผ่านไดรเวอร์ระบบปฏิบัติการมาตรฐาน: msr บน Linux และ cpuctl บน FreeBSD ในการใช้งานสถาปัตยกรรมทั่วไปส่วนใหญ่ การมีอยู่ของเทคโนโลยีจะถูกตรวจพบผ่านคำสั่ง CPUID
ในกรณีพิเศษจำนวนจำกัดที่ CAT ไม่ได้รับการสนับสนุนทางสถาปัตยกรรมบน SKU เฉพาะ (แต่มีการใช้งานที่ไม่ใช่ทางสถาปัตยกรรม (เฉพาะรุ่น) แทน) ซึ่งสามารถตรวจพบได้ผ่านทางสตริงของแบรนด์ สตริงแบรนด์นี้อ่านจาก CPUID และเปรียบเทียบกับตาราง SKU ที่รู้จักที่รองรับ หากจำเป็น การตรวจสอบขั้นสุดท้ายคือการตรวจสอบ MSR เฉพาะเพื่อค้นหาความสามารถของฮาร์ดแวร์ อย่างไรก็ตาม ขอแนะนำให้ใช้การแจงนับ CPUID หากเป็นไปได้
จากซอฟต์แวร์เวอร์ชัน v1.0.0 ไลบรารีจะเพิ่มตัวเลือกในการใช้ Intel(R) RDT ผ่านอินเทอร์เฟซระบบปฏิบัติการที่มีอยู่ (perf และ resctrl บน Linux) ไลบรารีตรวจพบว่ามีอินเทอร์เฟซเหล่านี้อยู่และอนุญาตให้เลือกอินเทอร์เฟซที่ต้องการผ่านตัวเลือกการกำหนดค่า ด้วยเหตุนี้ เครื่องมือที่มีอยู่ เช่น 'pqos' หรือ 'rdtset' จึงสามารถใช้เพื่อจัดการ Intel(R) RDT ในวิธีที่เข้ากันได้กับระบบปฏิบัติการ ตั้งแต่รีลีสเวอร์ชัน 4.3.0 อินเทอร์เฟซระบบปฏิบัติการกลายเป็นตัวเลือกเริ่มต้น มีการเพิ่มเครื่องมือห่อเครื่องมือ 'pqos' เพื่อช่วยในการเลือกอินเทอร์เฟซ 'pqos-os' และ 'pqos-msr' สำหรับการดำเนินการอินเทอร์เฟซ OS และ MSR ตามลำดับ
ตัวเลือกเวลาคอมไพล์ PID API ถูกลบออกแล้ว และ API จะพร้อมใช้งานอยู่เสมอ โปรดทราบว่าการทำงานที่เหมาะสมของ API เหล่านี้ขึ้นอยู่กับความพร้อมใช้งานและการเลือกอินเทอร์เฟซระบบปฏิบัติการ
แพคเกจซอฟต์แวร์นี้ได้รับการดูแล อัปเดต และพัฒนาบน https://github.com/intel/intel-cmt-cat
https://github.com/intel/intel-cmt-cat/wiki นำเสนอคำถามที่พบบ่อย ตัวอย่างการใช้งาน และลิงก์ที่เป็นประโยชน์
โปรดดูไฟล์ INSTALL สำหรับคำแนะนำในการติดตั้งแพ็คเกจ
ไดเรกทอรี "lib":
รวมไฟล์ไลบรารีซอฟต์แวร์ที่มี API สำหรับการตรวจจับ การตรวจสอบ และการจัดสรรเทคโนโลยี โปรดดูไลบรารี README สำหรับรายละเอียดเพิ่มเติม (lib/README)
ไดเรกทอรี “lib/perl”:
รวม wrapper Perl ไลบรารี PQoS โปรดดูอินเทอร์เฟซ README สำหรับรายละเอียดเพิ่มเติม (lib/perl/README)
ไดเรกทอรี “lib/หลาม”:
รวม wrapper ไลบรารี PQoS Python 3.x โปรดดูอินเทอร์เฟซ README สำหรับรายละเอียดเพิ่มเติม (lib/python/README.md)
ไดเรกทอรี "pqos":
รวมไฟล์ต้นฉบับสำหรับยูทิลิตี้ที่ให้การเข้าถึงบรรทัดคำสั่งไปยัง Intel(R) RDT ยูทิลิตี้นี้เชื่อมโยงกับห้องสมุดและตั้งโปรแกรมเทคโนโลยีผ่าน API โปรดดูยูทิลิตี้ README สำหรับรายละเอียดเพิ่มเติม "pqos/README" หน้าคู่มือของยูทิลิตี้ "pqos" ยังมีข้อมูลเกี่ยวกับการใช้เครื่องมือ: $ man pqos
ไดเรกทอรี "rdtset":
รวมไฟล์ต้นฉบับสำหรับยูทิลิตี้ที่มีฟังก์ชันการทำงานเหมือน "ชุดงาน" สำหรับการกำหนดค่า RDT ยูทิลิตี้นี้เชื่อมโยงกับห้องสมุดและตั้งโปรแกรมเทคโนโลยีผ่าน API โปรดดูยูทิลิตี้ README สำหรับรายละเอียดเพิ่มเติม "rdtset/README" หน้าคู่มือของยูทิลิตี้ "rdtset" ยังมีข้อมูลเกี่ยวกับการใช้เครื่องมือ: $ man rdtset
ไดเรกทอรี "appqos":
รวมไฟล์ต้นฉบับสำหรับแอปพลิเคชันที่อนุญาตให้จัดกลุ่มแอปเป็นกลุ่มตามลำดับความสำคัญ แต่ละพูลได้รับการกำหนดการกำหนดค่า Intel(R) RDT และ Intel(R) SST ที่สามารถตั้งค่าได้เมื่อเริ่มต้นระบบหรือขณะรันไทม์ผ่าน REST API โปรดดูแอปพลิเคชัน README สำหรับรายละเอียดเพิ่มเติม "appqos/README"
ไดเรกทอรี "appqos_client":
รวมไฟล์ต้นฉบับสำหรับเว็บแอปพลิเคชันไคลเอนต์ App QoS แอปนี้มีอินเทอร์เฟซผู้ใช้ที่เรียบง่ายเพื่อกำหนดค่า Intel(R) RDT และ Intel(R) SST จากระยะไกลบนระบบที่ App QoS กำลังทำงานอยู่ โปรดดูแอปพลิเคชัน README สำหรับรายละเอียดเพิ่มเติม "appqos_client/README"
ไดเรกทอรี "ตัวอย่าง":
รวมตัวอย่าง C และ Perl ของการใช้งาน Intel(R) RDT ผ่านทางไลบรารี API โปรดดูไฟล์ README สำหรับรายละเอียดเพิ่มเติม "ตัวอย่าง/README"
ไดเรกทอรี "snmp":
รวมตัวแทนย่อย Net-SNMP AgentX ที่เขียนด้วยภาษา Perl เพื่อสาธิตการใช้งานไลบรารี PQoS Perl wrapper API โปรดดูไฟล์ README สำหรับรายละเอียดเพิ่มเติม "snmp/README"
ไดเรกทอรี "เครื่องมือ":
รวมเครื่องมือ membw สำหรับเน้นแบนด์วิธหน่วยความจำด้วยการทำงานที่แตกต่างกัน
ไดเรกทอรี "srpm":
รวมไฟล์ *.src *.rpm และ *.spec สำหรับแพ็คเกจซอฟต์แวร์
ไฟล์ "ChangeLog":
คำอธิบายโดยย่อเกี่ยวกับการเปลี่ยนแปลงระหว่างการเปิดตัว
ไฟล์ "ติดตั้ง":
คำแนะนำในการติดตั้ง
ไฟล์ "ใบอนุญาต":
ใบอนุญาตของแพ็คเกจ
ไดเรกทอรี "การทดสอบหน่วย":
การทดสอบหน่วย
ผลิตภัณฑ์ที่รองรับสามารถพบได้ในภาคผนวก A ของข้อกำหนดสถาปัตยกรรม Intel® Resource Director Technology (Intel® RDT): https://www.intel.com/content/www/us/en/content-details/789566/intel-resource -ผู้อำนวยการเทคโนโลยี-intel-rdt-architecture-special.html
ภาคผนวก B ประกอบด้วยรายชื่อโปรเซสเซอร์ที่มีคุณสมบัติเฉพาะของ Intel® RDT
หมายเหตุ: การตรวจหาคุณลักษณะเฉพาะรุ่นจำเป็นต้องมีการตั้งค่าตัวแปรสภาพแวดล้อม RDT_PROBE_MSR
เมื่อใช้ไลบรารีและยูทิลิตี คุณลักษณะเหล่านี้จะใช้ได้เฉพาะเมื่อใช้อินเทอร์เฟซ MSR เท่านั้น ดูส่วน "อินเทอร์เฟซ" ด้านล่างสำหรับข้อมูลเพิ่มเติม ดูวิกิสำหรับตัวอย่างการใช้งาน
สำหรับรายละเอียดเพิ่มเติมของ Intel(R) RDT โปรดดูคู่มือการพัฒนาซอฟต์แวร์สถาปัตยกรรม Intel(R) ที่: https://www.intel.com/content/www/us/en/develop/download/intel-64-and -ia-32-architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4.html ข้อมูลเฉพาะสามารถพบได้ในเล่ม 3a บทที่ 17.18 และ 17.19
Linux เป็นระบบปฏิบัติการหลักที่รองรับในขณะนี้ มีพอร์ต FreeBSD ของซอฟต์แวร์ แต่เนื่องจากขอบเขตการตรวจสอบที่จำกัด จึงค่อนข้างอยู่ในช่วงทดลองในขั้นตอนนี้ แม้ว่าเคอร์เนล Linux สมัยใหม่ส่วนใหญ่จะรองรับ Intel(R) RDT แต่ชุดซอฟต์แวร์ Intel(R) RDT มีมาก่อนส่วนขยายเหล่านี้ และสามารถทำงานได้ทั้งแบบมีและไม่มีการสนับสนุนเคอร์เนล ซอฟต์แวร์ Intel(R) RDT สามารถตรวจจับและใช้ประโยชน์จากส่วนขยายเคอร์เนลเหล่านี้ได้เมื่อพร้อมใช้งานเพื่อเพิ่มฟังก์ชันการทำงาน แต่ยังเข้ากันได้กับเคอร์เนลรุ่นเก่าอีกด้วย
การสนับสนุนเคอร์เนล Linux สำหรับ Intel(R) RDT เดิมเปิดตัวพร้อมกับส่วนขยายการเรียกระบบ Linux perf สำหรับ CMT และ MBM ล่าสุด อินเทอร์เฟซ Resctrl ได้เพิ่มการรองรับ CAT, CDP และ MBA บนเคอร์เนล Linux สมัยใหม่ ขอแนะนำให้ใช้อินเทอร์เฟซเคอร์เนล/ระบบปฏิบัติการ เมื่อพร้อมใช้งาน รายละเอียดเกี่ยวกับอินเทอร์เฟซเหล่านี้มีอยู่ใน resctrl_ui.txt แพคเกจซอฟต์แวร์ Intel(R) RDT นี้ยังคงทำงานได้อย่างราบรื่นในเคอร์เนล Linux ทุกเวอร์ชัน
ไลบรารีซอฟต์แวร์และยูทิลิตี้ Intel(R) RDT มีอินเทอร์เฟซสองแบบสำหรับตั้งโปรแกรมเทคโนโลยี Intel(R) RDT ซึ่งเป็นอินเทอร์เฟซ MSR และระบบปฏิบัติการ
อินเทอร์เฟซ MSR ใช้เพื่อกำหนดค่าแพลตฟอร์มโดยการเขียนโปรแกรมฮาร์ดแวร์ (MSR) โดยตรง นี่เป็นอินเทอร์เฟซแบบเดิมและไม่จำเป็นต้องมีการสนับสนุนเคอร์เนลสำหรับ Intel(R) RDT แต่จำกัดอยู่เพียงการตรวจสอบและการจัดการทรัพยากรแบบต่อคอร์
อินเทอร์เฟซระบบปฏิบัติการถูกเพิ่มลงในแพ็คเกจในภายหลัง และเมื่อเลือกแล้ว ไลบรารีจะใช้ประโยชน์จากส่วนขยายเคอร์เนล Linux เพื่อตั้งโปรแกรมเทคโนโลยีเหล่านี้ ซึ่งช่วยให้สามารถตรวจสอบและจัดการทรัพยากรตามคอร์/กระบวนการ และควรใช้เมื่อพร้อมใช้งาน
โปรดดูตารางด้านล่างสำหรับข้อมูลเพิ่มเติมว่าเมื่อมีการเพิ่มการรองรับฟีเจอร์ Intel(R) RDT (MSR & OS) ลงในแพ็คเกจ
เวอร์ชัน Intel(R) RDT | เปิดใช้งานคุณสมบัติ RDT แล้ว | ต้องมีเวอร์ชันเคอร์เนล |
---|---|---|
0.1.3 | L3 CAT, CMT, MBM | ใดๆ |
0.1.4 | L3 ซีดีพี | ใดๆ |
0.1.5 | L2 กสท | ใดๆ |
1.2.0 | ปริญญาโทบริหารธุรกิจ | ใดๆ |
2.0.0 | L2 ซีดีพี | ใดๆ |
5.0.0 | I/O RDT | ใดๆ |
เวอร์ชัน Intel(R) RDT | เปิดใช้งานคุณสมบัติ RDT แล้ว | ต้องมีเวอร์ชันเคอร์เนล | อินเทอร์เฟซที่แนะนำ |
---|---|---|---|
0.1.4 | ซีเอ็มที (Perf) | 4.1 | MSR (1) |
1.0.0 | MBM (ประสิทธิภาพ) | 4.7 | MSR (1) |
1.1.0 | L3 CAT, L3 CDP, L2 CAT (รีเซ็ต) | 4.10 | OS สำหรับการจัดสรรเท่านั้น (ยกเว้น MBA) MSR สำหรับการจัดสรร + การตรวจสอบ (2) |
1.2.0 | ปริญญาโทบริหารธุรกิจ (Resctrl) | 4.12 | OS สำหรับการจัดสรรเท่านั้น MSR สำหรับการจัดสรร + การตรวจสอบ (2) |
2.0.0 | CMT, MBM (รีเซ็ต) | 4.14 | ระบบปฏิบัติการ |
2.0.0 | L2 ซีดีพี | 4.16 | ระบบปฏิบัติการ |
3.0.0 | MBA CTRL (Resctrl) | 4.18 | ระบบปฏิบัติการ |
อ้างอิง:
การพึ่งพาเพียงอย่างเดียวของ Intel(R) RDT คือการเข้าถึงไลบรารี C และ pthreads และ:
เปิดใช้งานการสนับสนุน Intel(R) RDT ใน:
หมายเหตุ: ไม่จำเป็นต้องมีตัวเลือกการกำหนดค่าเคอร์เนลก่อนเวอร์ชัน 4.10
กล่าวโดยสรุป ไม่อนุญาตให้ใช้ซอฟต์แวร์ Intel(R) RDT หรือ PCM ร่วมกับเฟรมเวิร์ก Linux perf และ cgroup ในขณะนี้
ถึงแม้จะน่าผิดหวังก็ตาม ไม่อนุญาตให้ใช้ Linux perf สำหรับ CMT & MBM และ Intel(R) RDT สำหรับ CAT & CDP เนื่องจาก Linux perf จะแทนที่การกำหนดค่า CAT ที่มีอยู่ระหว่างการดำเนินการ
มีตัวเลือกมากมายให้เลือกเพื่อใช้งาน CAT:
ตารางที่ 4. เมทริกซ์การทำงานร่วมกันของซอฟต์แวร์
อินเทล(R) RDT | พีซีเอ็ม | ระบบปฏิบัติการ Linux | ลินุกซ์ซีกรุ๊ป | การคืนค่าลินุกซ์ | |
---|---|---|---|---|---|
อินเทล(R) RDT | ใช่(1) | ใช่(2) | ใช่(5) | เลขที่ | ใช่(5) |
พีซีเอ็ม | ใช่(2) | ใช่ | เลขที่ | เลขที่ | เลขที่ |
ระบบปฏิบัติการ Linux | ใช่(5) | เลขที่ | ใช่ | ใช่(3) | ใช่ |
ลินุกซ์ซีกรุ๊ป | เลขที่ | เลขที่ | ใช่ | ใช่(3) | เลขที่ |
ลินุกซ์ Resctrl (4) | ใช่(5) | เลขที่ | ใช่ | เลขที่ | ใช่ |
อ้างอิง:
การตรวจสอบ pqos จาก Intel(R) RDT สามารถตรวจจับกระบวนการตรวจสอบ pqos อื่นๆ ในระบบได้ rdtset จาก Intel(R) RDT ตรวจพบกระบวนการอื่นๆ ที่เริ่มต้นด้วย rdtset และจะไม่ใช้ทรัพยากร CAT/CDP
pqos จาก Intel(R) RDT สามารถตรวจจับได้ว่า PCM ตรวจสอบคอร์ และจะไม่พยายามแย่งชิงคอร์ เว้นแต่จะถูกบังคับ อย่างไรก็ตาม หากการตรวจสอบ pqos เริ่มต้นขึ้นก่อน จากนั้น PCM จะถูกเริ่มต้น จากนั้นระบบหลังจะแย่งชิงโครงสร้างพื้นฐานการตรวจสอบจาก pqos เพื่อนำไปใช้งาน
แพทช์เคอร์เนล Linux cgroup https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt
เคอร์เนล Linux เวอร์ชัน 4.10 และใหม่กว่า วิกิสำหรับ Intel resctrl มีอยู่ที่: https://github.com/intel/intel-cmt-cat/wiki/resctrl
เฉพาะกับเคอร์เนล Linux เวอร์ชัน 4.10 (และใหม่กว่า), Intel(R) RDT เวอร์ชัน 1.0.0 (และใหม่กว่า) พร้อมอินเทอร์เฟซระบบปฏิบัติการที่เลือก โปรดดูตัวเลือก '-I' ใน 'man pqos' หรือ 'pqos-os'
PCM มีอยู่ที่: https://github.com/opcm/pcm
ตารางที่ 5. สถานะการเปิดใช้งานซอฟต์แวร์ Intel(R) RDT
แกนกลาง | งาน | ซีเอ็มที | เอ็มบีเอ็ม | L3 กสท | L3 ซีดีพี | L2 กสท | ปริญญาโทบริหารธุรกิจ | |
---|---|---|---|---|---|---|---|---|
อินเทล(R) RDT | ใช่ | ใช่(7) | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ | ใช่ |
ระบบปฏิบัติการ Linux | ใช่(6) | ใช่ | ใช่(1) | ใช่(2) | ไม่(3) | ไม่(3) | ไม่(3) | เลขที่ |
ลินุกซ์ซีกรุ๊ป | เลขที่ | ใช่ | เลขที่ | เลขที่ | ใช่(4) | เลขที่ | เลขที่ | เลขที่ |
ลินุกซ์ Resctrl (5) | ใช่ | ใช่ | ใช่(8) | ใช่(8) | ใช่ | ใช่ | ใช่ | ใช่(9) |
ตำนาน:
อ้างอิง:
ซอฟต์แวร์นี้จัดทำโดย INTEL "ตามที่เป็น" ไม่มีการมอบใบอนุญาตทั้งโดยชัดแจ้งหรือโดยนัยโดย ESTOPPEL หรือโดยประการอื่นใดต่อสิทธิ์ในทรัพย์สินทางปัญญาใด ๆ ที่ได้รับผ่านการใช้งาน ยกเว้นตามที่กำหนดไว้ในข้อกำหนดและเงื่อนไขการขายของ INTEL, INTEL จะไม่รับผิดชอบใดๆ และ Intel ปฏิเสธการรับประกันโดยชัดแจ้งหรือโดยนัยใดๆ ที่เกี่ยวข้องกับการขายและ/หรือการใช้ผลิตภัณฑ์ของ INTEL รวมถึงความรับผิดหรือการรับประกันที่เกี่ยวข้องกับความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ ความสามารถในการค้าขายหรือการละเมิดสิทธิบัตร ลิขสิทธิ์ หรือทรัพย์สินทางปัญญาอื่น ๆ