ในโพสต์ก่อนหน้าของฉัน ฉันได้พูดคุยเกี่ยวกับเทคนิคทั่วไปที่ใช้สำหรับการคำนวณและประสิทธิภาพการใช้พลังงานของโครงข่ายประสาทเทียมบนฮาร์ดแวร์ที่มีอยู่ โพสต์นี้เราจะพูดถึงฮาร์ดแวร์ประเภทหนึ่งที่เรียกว่า FPGAs ซึ่งได้มีการพูดคุยกันหลายปีหลังจากรุ่งอรุณของยุค Neural Net
คำถามแรกที่เข้ามาในใจคือ ทำไมต้อง FPGA?
ดังนั้น CPU ทั่วไปสามารถทำงานได้ 10–100 GFLOP ต่อวินาที GPU ให้ประสิทธิภาพสูงสุดสูงถึง 10 TFLOP/s ดังนั้นซีพียูจึงไม่เป็นปัญหาเนื่องจาก GPU พ่ายแพ้อย่างรุนแรง แต่ GPU ยังคงมีข้อเสียเปรียบในแง่ของประสิทธิภาพการใช้พลังงาน และยังคงมีจุดประสงค์ทั่วไปในการเพิ่มประสิทธิภาพสำหรับงานเฉพาะ
เราทุกคนรู้ดีว่า ASIC เป็นชิปที่ใช้สำหรับงานเฉพาะ แต่ปัญหาของสมองซิลิคอนก็คือ ครั้งหนึ่ง ชิปได้รับการออกแบบและเผาแล้ว ไม่สามารถออกแบบใหม่ได้อีก นี่แหละ FPGA ซึ่งเป็น ASIC ที่ตั้งโปรแกรมใหม่ได้ นั่นคือสิ่งที่ฉันชอบเรียกพวกมัน
ด้วยความสามารถในการตั้งโปรแกรมใหม่นี้ทำให้พลังในการออกแบบชิปโดยคำนึงถึงกลยุทธ์การทำงานแบบขนานในระดับสูง (ซึ่งตาข่ายประสาทจะเติบโตได้ไม่ดี) และนำการคำนวณมาใช้ โหลดและประสิทธิภาพเมื่อเทียบกับ GPU
ปัญหาปัจจุบันกับ FPGA
- ความถี่ในการทำงานของ FPGA อยู่ที่ประมาณ 100–300MHz ซึ่งน้อยกว่า CPU และ GPU มาก
- การใช้งานโครงข่ายประสาทเทียมบน FPGA นั้นยากกว่าบน CPU และ GPU มาก
ที่กล่าวมาข้างต้นเป็นเหตุผลว่าทำไมจึงมีการวิจัยเกี่ยวกับซิลิคอนสายพันธุ์นี้ เพื่อทำให้รอบสัญญาณนาฬิกาทัดเทียมกับ CPU และ GPU และเหนือกว่าพวกมันในอุดมคติ มีเทคนิคต่างๆ ที่กล่าวถึงในหัวข้อด้านล่างซึ่งกล่าวถึงเทคนิคการปรับฮาร์ดแวร์ให้เหมาะสมสำหรับ FPGA
การออกแบบตัวเร่งความเร็วโครงข่ายประสาทเทียมที่ทันสมัยในปัจจุบันประมาณประสิทธิภาพการใช้พลังงานที่ดีขึ้นอย่างน้อย 10 เท่าของ GPU ในปัจจุบัน
ชั้น Convolution และ FC
- เลเยอร์ Convolution และ FC ถือเป็นสัดส่วนส่วนใหญ่ของภาระการคำนวณของโครงข่ายประสาทเทียม มีเลเยอร์ประเภทอื่น ๆ เช่น การรวมเลเยอร์, เลเยอร์การทำให้เป็นมาตรฐานแบบแบทช์, การต่อกัน ฯลฯ แต่น้ำหนักส่วนใหญ่จะกระจุกตัวอยู่ในการบิดและเลเยอร์ FC ซึ่งเกี่ยวข้องกับการดำเนินการทวีคูณและสะสม (MAC)
ภาพรวมตัวเร่งความเร็วที่ใช้ FPGA
- ระบบประกอบด้วย CPU และชิ้นส่วน FPGA ชิป FPGA แท้มักจะทำงานร่วมกับโฮสต์พีซี/เซิร์ฟเวอร์ผ่านการเชื่อมต่อ PCIe ทั้งโฮสต์และ FPGA สามารถทำงานกับหน่วยความจำภายนอกของตนเองและเข้าถึงหน่วยความจำของกันและกันผ่านการเชื่อมต่อ
- ชิป FPGA มีหน่วยจัดเก็บข้อมูลบนชิปขนาดใหญ่ เช่น รีจิสเตอร์และ SRAM แต่ก็ยังเล็กเกินไปเมื่อเทียบกับรุ่น NN ยังมีขนาดเล็กที่จะเก็บพารามิเตอร์ของโครงข่ายประสาทเทียม ดังนั้นช่องว่างนี้จึงจำเป็นต้องใช้หน่วยความจำภายนอก เช่น DDR SDRAM แบนด์วิธและการใช้พลังงานของ DDR จะจำกัดประสิทธิภาพของระบบ
ระเบียบวิธีและเกณฑ์การออกแบบ
- โดยทั่วไป เป้าหมายการออกแบบของตัวเร่งการอนุมานโครงข่ายประสาทเทียมประกอบด้วยสองด้าน (i) ความเร็วสูง (ปริมาณงานสูงและเวลาแฝงต่ำ) (ii) ประสิทธิภาพการใช้พลังงานสูง
ความเร็ว
- ทรัพยากรบนชิปของ FPGA บางตัวสามารถเพิ่มขึ้นได้โดยการเพิ่มจำนวนหน่วยประมวลผลบนนั้น ซึ่งสามารถเพิ่มขึ้นได้โดยการลดขนาดของแต่ละหน่วยประมวลผล สามารถทำได้โดยการลดความแม่นยำในการแสดงข้อมูล เช่น ใช้การแสดงจุดคงที่ 16 บิตหรือ 8 บิต มากกว่าการแสดงจุดลอยตัวในโครงข่ายประสาทเทียม
- ประการที่สอง โดยการเพิ่มความถี่ในการทำงานของชิป ซึ่งสามารถทำได้โดยการออกแบบชิปอย่างระมัดระวังในแง่ที่ว่าข้อมูลที่ประมวลผลสามารถวางติดกับชิปได้ การใช้งานชิปสูง อัตราส่วนได้รับการรับรองโดยการใช้งานแบบขนานและระบบหน่วยความจำที่มีประสิทธิภาพ รูปแบบการเข้าถึงข้อมูลและอัตราส่วนการคำนวณข้อมูลยังส่งผลต่อหากฮาร์ดแวร์ถูกใช้งานอย่างเต็มที่หรือไม่
ปริมาณงานทางทฤษฎี เช่น จำนวนการอนุมานต่อวินาที สูตรได้มาจากสมการต่อไปนี้ :
โดยที่ OPSact -› จำนวนการดำเนินการต่อวินาทีที่รันไทม์โดยตัวเร่งความเร็ว
W -› ปริมาณงานทางทฤษฎีทั้งหมดของเครือข่าย
OPSpeak -› จำนวนการดำเนินการสูงสุดที่สามารถประมวลผลได้ต่อ วินาที
n -› อัตราการใช้ประโยชน์ของหน่วยประมวลผล วัดโดยอัตราส่วนเฉลี่ยของหน่วยประมวลผลการทำงานในหน่วยประมวลผลทั้งหมดในระหว่างการอนุมานแต่ละครั้ง
f -› ความถี่ในการทำงานของหน่วยประมวลผล
P -› จำนวนหน่วยการคำนวณ
- ตัวเร่งความเร็ว NN ที่ใช้ FPGA ส่วนใหญ่จะคำนวณอินพุตที่แตกต่างกันทีละตัว ในขณะที่การออกแบบบางอย่างจะประมวลผลอินพุตที่แตกต่างกันในแบบคู่ขนาน ดังนั้นเวลาแฝงของคันเร่งจึงแสดงเป็น:
โดยที่ L -› เวลาแฝงของการประมวลผลการอนุมาน
C -› ความสอดคล้องของตัวเร่งความเร็ว วัดโดยจำนวนการอนุมานที่ประมวลผลแบบขนาน
IPS -› ปริมาณงานของระบบ วัดโดยจำนวนของการอนุมานที่ประมวลผล แต่ละวินาที
ประสิทธิภาพการใช้พลังงาน
- การดำเนินการแต่ละครั้งจะดำเนินการโดยหน่วย DSP ซึ่งมีตรรกะของทรานซิสเตอร์ที่แน่นอนซึ่งต้องใช้แรงดันไฟฟ้าบางส่วนในการทำงาน ดังนั้นพลังงานที่ต้องใช้ในการดำเนินการตามจำนวนการดำเนินงานทั้งหมดในเครือข่ายจึงเป็นสิ่งที่เราพิจารณาแทนจำนวนการอนุมานซึ่งเป็นกรณีของความเร็วในการอนุมาน
- หากปริมาณงานของเครือข่ายได้รับการแก้ไข การเพิ่มประสิทธิภาพการใช้พลังงานของเครื่องเร่งความเร็วโครงข่ายประสาทเทียมหมายถึงการลดต้นทุนด้านพลังงานทั้งหมด
Eff -› ประสิทธิภาพการใช้พลังงานของระบบ ซึ่งวัดจากจำนวนการดำเนินงานสามารถประมวลผลได้ภายในหน่วยพลังงาน
W -› ปริมาณงานสำหรับการอนุมานแต่ละครั้ง วัดจากจำนวนการดำเนินงานในเครือข่าย โดยหลักๆ คือ การบวกและการคูณสำหรับ โครงข่ายประสาทเทียม
Etotal ประกอบด้วยส่วนประกอบพลังงานการเข้าถึง RAM แบบคงที่ + ส่วนประกอบพลังงานการเข้าถึง RAM แบบไดนามิก + พลังงานคงที่
เราแยกพลังงานการเข้าถึงหน่วยความจำออกเป็นส่วน DRAM และส่วน SRAM Nx acc สามารถลดลงได้ด้วยการหาปริมาณ การกระจายตัว ระบบหน่วยความจำบนชิปที่มีประสิทธิภาพ และวิธีการกำหนดเวลา ดังนั้นวิธีการเหล่านี้จึงช่วยลดพลังงานหน่วยความจำแบบไดนามิก
บทความนี้เราจะมุ่งเน้นไปที่การเพิ่มประสิทธิภาพการออกแบบฮาร์ดแวร์มากกว่าการเพิ่มประสิทธิภาพด้านโครงข่ายประสาทเทียม ซึ่งเกี่ยวข้องกับการหาปริมาณข้อมูล การลดน้ำหนัก เช่น การกระจายตัว การตัดแต่งน้ำหนัก เทคนิคการจัดกลุ่มน้ำหนัก
การออกแบบฮาร์ดแวร์ : สถาปัตยกรรมที่มีประสิทธิภาพ
การออกแบบหน่วยประมวลผล
หน่วยประมวลผลที่เล็กลงหมายความว่าสามารถฝังหน่วยประมวลผลจำนวนมากขึ้นบนชิปได้ ซึ่งหมายถึงประสิทธิภาพสูงสุดที่สูงขึ้น อาเรย์หน่วยประมวลผลที่ออกแบบมาอย่างพิถีพิถันสามารถเพิ่มความถี่ในการทำงานของระบบและช่วยปรับปรุงประสิทธิภาพสูงสุดได้
- หน่วยประมวลผลที่มีความกว้างบิตต่ำ:
การลดความกว้างของบิต จะลดขนาดของหน่วยประมวลผล ซึ่งจะเพิ่มขอบเขตของการเพิ่มหน่วยประมวลผลในอาเรย์ การออกแบบที่ทันสมัยยิ่งขึ้นแทนที่หน่วยจุดลอยตัว 32 บิตด้วยหน่วยจุดคงที่ มีการใช้การแสดงจุดคงที่ 16 บิตและ 12 บิตฝังอาร์เรย์หน่วยประมวลผลที่มีประสิทธิภาพบน FPGA Binarized NN มีประสิทธิภาพเหนือกว่า CPU และ GPU ในด้านประสิทธิภาพ แต่จะสูญเสียความแม่นยำ
ด้านล่างนี้คือตารางเปรียบเทียบสำหรับการแสดงข้อมูลที่แตกต่างกันในชิป FPGA ที่แตกต่างกัน
- วิธีการ Convolution อย่างรวดเร็ว :
การดำเนินการ Convolution บนหน่วย DSP สามารถเร็วขึ้นได้โดยใช้การแปลงฟูริเยร์แบบแยกส่วน (DFT) สำหรับตัวกรอง FxF ที่เกี่ยวข้องกับตัวกรอง KxK DFT จะแปลงการคูณ (F-K + 1)^2 * ^2 ในโดเมนช่องว่างเป็นการคูณแบบซับซ้อน F² ในโดเมนความถี่ สำหรับเลเยอร์ CONV ที่มีช่องอินพุต M และช่องเอาต์พุต N จำเป็นต้องมีการคูณโดเมนความถี่ MN เท่าและ 1M + Nº คูณ DFT/IDFT
ประสิทธิภาพทางทฤษฎีที่ได้รับจากการบิดอย่างรวดเร็วขึ้นอยู่กับขนาดการบิดตัวอย่างรวดเร็ว ถูกจำกัดด้วยทรัพยากรบนชิปและการพิจารณาถึงความยืดหยุ่น การออกแบบในปัจจุบันไม่ได้เลือกขนาดการบิดขนาดใหญ่ งานที่มีอยู่ชี้ให้เห็นว่าประสิทธิภาพทางทฤษฎีสูงถึง 4 เท่าสามารถทำได้โดยการบิดอย่างรวดเร็วด้วย FFT หรือ Winograd ด้วยขนาดเคอร์เนลที่เหมาะสม - วิธีการเพิ่มประสิทธิภาพความถี่ :
FPGA ล่าสุดรองรับความถี่การทำงานสูงสุดตามทฤษฎี DSP 700–900 MHz แต่การออกแบบที่มีอยู่มักจะทำงานที่ความถี่ 100–400 MHz ความถี่ในการทำงานถูกจำกัดโดยการกำหนดเส้นทางระหว่าง SRAM บนชิปและหน่วย DSP
ชิ้นข้างเคียงไปยังหน่วย DSP แต่ละหน่วยจะถูกใช้เป็น RAM ในเครื่องเพื่อแยกโดเมนนาฬิกา
การออกแบบต้นแบบทำให้ได้ความถี่การทำงาน DSP สูงสุดที่ 741MHz และ 891MHz บนชิป FPGA ที่มีระดับความเร็วต่างกัน Xilinx ยังได้เสนอ CHaiDNN-v2 และ xfDNN ด้วยเทคนิคนี้ และบรรลุความถี่การทำงาน DSP สูงถึง 700MHz เมื่อเปรียบเทียบกับการออกแบบที่มีอยู่ซึ่งมีความถี่อยู่ภายใน 300MHz เทคนิคนี้จะทำให้ได้รับประสิทธิภาพสูงสุดอย่างน้อย 2 เท่า
กลยุทธ์การคลายลูป
วิธีที่เราวนซ้ำเลเยอร์ Conv และเลเยอร์ FC สำหรับการบิดและการดำเนินการทวีคูณก็เป็นคำถามสำคัญของการวิจัยเช่นกัน กลยุทธ์การวนซ้ำที่ไม่มีประสิทธิภาพอาจใช้เวลานานและลดประสิทธิภาพการประมวลผลของระบบ
ด้านบนคือกลยุทธ์การคลายลูปที่ใช้กันทั่วไป สำหรับตัวกรองจำนวน N เราวนซ้ำตัวกรองแต่ละตัวและสำหรับแต่ละช่องตัวกรองและสำหรับแต่ละแผนผังเอาต์พุตและสำหรับแต่ละองค์ประกอบเคอร์เนล เราสร้างแต่ละองค์ประกอบของแผนผังคุณลักษณะเอาต์พุตโดยการคูณค่าของแผนผังคุณลักษณะอินพุตด้วยแต่ละค่าของ เคอร์เนล จากนั้นแต่ละแผนผังเอาต์พุตจะถูกเพิ่มด้วยอคติต่อช่อง
คุณสามารถอ่านโค้ดหลอกของกลยุทธ์การวนซ้ำเพื่อความเข้าใจที่ดีขึ้น
- การเลือกพารามิเตอร์ Unroll
จำนวนครั้งของการทำซ้ำแบบขนานบนฮาร์ดแวร์เรียกว่าพารามิเตอร์ unroll การเลือกพารามิเตอร์การคลายที่ไม่เหมาะสมอาจทำให้ฮาร์ดแวร์ใช้งานน้อยเกินไป
สมมติว่าจำนวนการเดินทางของลูปคือ M และความขนานคือ m อัตราส่วนการใช้งานของฮาร์ดแวร์คือการประมวลผลเลเยอร์ NN อัตราส่วนการใช้งานทั้งหมดจะเป็นผลคูณของอัตราส่วนการใช้งานในแต่ละลูป
นอกจากปัญหาการใช้งานน้อยเกินไปแล้ว การคลายลูปยังส่งผลต่อดาต้าพาธและบนชิปด้วย การออกแบบหน่วยความจำ ดังนั้นกลยุทธ์การคลายลูปจึงเป็นคุณลักษณะสำคัญสำหรับการออกแบบโครงข่ายประสาทเทียม - การถ่ายโอนข้อมูลและการออกแบบหน่วยความจำบนชิป
ระบบหน่วยความจำบนชิปควรนำเสนอข้อมูลที่จำเป็นอย่างมีประสิทธิภาพให้กับหน่วยประมวลผลแต่ละหน่วยทุกรอบ ในการใช้ความขนานสูง ตัวเร่งโครงข่ายประสาทเทียมมักจะนำข้อมูลกลับมาใช้ใหม่ หน่วยคำนวณจำนวนมาก เพียงการกระจายข้อมูลไปยังหน่วยประมวลผลที่แตกต่างกัน ทำให้เกิดการกระจายออกจำนวนมากและต้นทุนการกำหนดเส้นทางที่สูง ดังนั้นจึงลดความถี่ในการทำงาน
ข้อมูลที่ใช้ร่วมกันจะถูกถ่ายโอนจากหน่วยประมวลผลหนึ่งไปยังอีกหน่วยประมวลผลหนึ่งในโหมดลูกโซ่ ดังนั้นข้อมูลจึงไม่ถูกเผยแพร่ และจำเป็นต้องมีการเชื่อมต่อเฉพาะเครื่องระหว่างหน่วยประมวลผลที่แตกต่างกันเท่านั้น ข้อเสียเปรียบคือเวลาในการตอบสนองเพิ่มขึ้น ลำดับการดำเนินการแบบวนซ้ำได้รับการกำหนดเวลาตามนั้นเพื่อให้ครอบคลุมเวลาแฝง
การออกแบบระบบ
- ส่วนลอจิกของทั้งระบบจะแสดงด้วยกล่องสีน้ำเงิน CPU โฮสต์จะออกภาระงานหรือคำสั่งไปยังส่วนตรรกะ FPGA และตรวจสอบสถานะการทำงานของมัน ในส่วนของลอจิก FPGA โดยปกติตัวควบคุมจะถูกนำมาใช้เพื่อสื่อสารกับโฮสต์และสร้างสัญญาณควบคุมไปยังโมดูลอื่นๆ ทั้งหมดใน FPGA ตัวควบคุมอาจเป็น FSM หรือตัวถอดรหัสคำสั่งก็ได้
- ส่วนลอจิกแบบทันทีถูกนำมาใช้สำหรับการออกแบบบางอย่าง หากข้อมูลที่โหลดจากหน่วยความจำภายนอกจำเป็นต้องมีการประมวลผลล่วงหน้า โมดูลนี้อาจเป็นโมดูลการจัดเรียงข้อมูล ตัวเปลี่ยนข้อมูล โมดูล FFT ฯลฯ SRAM บนชิป
ของชิป FPGA มีข้อจำกัดมากเกินไปเมื่อเทียบกับรุ่น NN ขนาดใหญ่ ดังนั้นสำหรับการออกแบบทั่วไป ลำดับชั้นหน่วยความจำสองระดับจึงถูกนำมาใช้กับ DDR และหน่วยความจำบนชิป - รุ่นหลังคา:
อัตราส่วนการคำนวณต่อการสื่อสาร (CTC) เป็นแกน x และประสิทธิภาพของฮาร์ดแวร์
เป็นแกน y CTC คือจำนวนการดำเนินการที่สามารถดำเนินการได้ด้วยการเข้าถึงหน่วยความจำขนาดหนึ่งหน่วย การออกแบบฮาร์ดแวร์แต่ละรายการสามารถถือเป็นจุดในภาพได้ ดังนั้น y/x เท่ากับข้อกำหนดแบนด์วิดท์ของการออกแบบ
หลังคาแบนด์วิดท์จริงอยู่ต่ำกว่าหลังคาตามทฤษฎี เนื่องจากแบนด์วิดท์ที่ทำได้ของ DDR ขึ้นอยู่กับรูปแบบการเข้าถึงข้อมูล การเข้าถึง DDR ตามลำดับทำให้ได้แบนด์วิธที่สูงกว่าการเข้าถึงแบบสุ่มมาก ส่วนหลังคาอีกด้านคือหลังคาสำหรับการคำนวณ ซึ่งถูกจำกัดโดยทรัพยากรที่มีอยู่ใน FPGA
- การปูกระเบื้องแบบวนซ้ำและการแลกเปลี่ยน :
กลยุทธ์การคลายลูปเพื่อเพิ่มความเท่าเทียมในขณะที่ลดการสิ้นเปลืองการคำนวณสำหรับเครือข่ายบางเครือข่าย เมื่อมีการตัดสินใจกลยุทธ์การคลายลูป การกำหนดเวลาส่วนที่เหลือของลูปจะตัดสินว่าฮาร์ดแวร์สามารถนำข้อมูลกลับมาใช้ใหม่ด้วยบัฟเฟอร์บนชิปได้อย่างไร สิ่งนี้เกี่ยวข้องกับการเรียงต่อแบบวนซ้ำและกลยุทธ์การแลกเปลี่ยนแบบวนซ้ำ
การเรียงวนแบบวนซ้ำเป็นระดับที่สูงกว่าของการคลี่ลูปออก ข้อมูลอินพุตทั้งหมดของไทล์ลูปจะถูกจัดเก็บไว้ในชิป และเคอร์เนลฮาร์ดแวร์ที่คลายลูปทำงานกับข้อมูลเหล่านี้ ขนาดไทล์ลูปที่ใหญ่ขึ้นหมายความว่าแต่ละไทล์จะถูกโหลดจากหน่วยความจำภายนอกไปยังหน่วยความจำบนชิปน้อยลง กลยุทธ์การแลกเปลี่ยนแบบวนซ้ำ
ตัดสินใจลำดับการประมวลผลของไทล์ลูป
การจัดเรียงข้อมูลในบัฟเฟอร์บนชิปได้รับการควบคุมผ่านคำแนะนำเพื่อให้พอดีกับขนาดแผนที่คุณลักษณะที่แตกต่างกัน ซึ่งหมายความว่าฮาร์ดแวร์สามารถใช้บัฟเฟอร์บนชิปได้อย่างเต็มที่เพื่อใช้ขนาดการเรียงที่ใหญ่ที่สุดตามขนาดบัฟเฟอร์บนชิป งานนี้ยังเสนอลำดับการดำเนินการลูป "ไปมา" เพื่อหลีกเลี่ยงการรีเฟรชข้อมูลบนชิปทั้งหมดเมื่อลูปในสุดเสร็จสิ้น
- การกำหนดเวลาข้ามเลเยอร์:
ปัญหาการเข้าถึงหน่วยความจำภายนอกโดยการรวมเลเยอร์ที่อยู่ติดกันสองเลเยอร์เข้าด้วยกัน เพื่อหลีกเลี่ยงการถ่ายโอนผลลัพธ์ระดับกลางระหว่างสองชั้น
กลยุทธ์นี้ช่วยลดการถ่ายโอนข้อมูลบนชิป 95% พร้อมต้นทุนหน่วยความจำบนชิปเพิ่มเติม 20% แม้แต่โปรแกรมซอฟต์แวร์ก็ยังเร่งความเร็วได้ 2 เท่าด้วยกลยุทธ์การตั้งเวลานี้ - ปรับรูปแบบการเข้าถึงข้อมูลให้เป็นปกติ:
นอกเหนือจากการเพิ่ม CTC แล้ว การเพิ่มหลังคาแบนด์วิธจริงยังช่วยปรับปรุงประสิทธิภาพที่ทำได้ด้วยอัตราส่วน CTC ที่แน่นอน ซึ่งทำได้โดยการปรับรูปแบบการเข้าถึง DDR ให้เป็นมาตรฐาน รูปแบบแผนผังคุณสมบัติทั่วไปในหน่วยความจำภายนอก ได้แก่ NCHW หรือ CHWN โดยที่ N หมายถึงมิติแบทช์ C หมายถึงมิติช่องสัญญาณ H และW หมายถึงมิติแผนผังคุณลักษณะ y และ x การใช้รูปแบบใดๆ เหล่านี้ ไทล์แผนที่คุณลักษณะอาจถูกตัดเป็นบล็อกข้อมูลขนาดเล็กที่จัดเก็บไว้ในที่อยู่ที่ไม่ต่อเนื่องกัน
บทความนี้ยังคงเป็นส่วนเล็กๆ ของภูเขาน้ำแข็งและเป็นเพียงภาพรวมของเทคนิคล้ำสมัยที่ใช้ในพื้นที่นี้ เพื่อให้ได้การคำนวณและประสิทธิภาพการใช้พลังงานที่ดีขึ้นบน FPGA
แน่นอนว่า AI บน Edge เป็นสิ่งใหญ่ถัดไปที่จำเป็นในการก้าวออกจากข้อกำหนดของการประมวลผลบนคลาวด์ ซึ่งเป็นจุดที่การวิจัยสาขานี้มีคุณค่ามากที่สุด
ไว้คราวหน้าอ่านต่อและเติบโตต่อไป :)
อ้างอิง : https://arxiv.org/pdf/1712.08934.pdf