ในโพสต์ก่อนหน้าของฉัน ฉันได้พูดคุยเกี่ยวกับเทคนิคทั่วไปที่ใช้สำหรับการคำนวณและประสิทธิภาพการใช้พลังงานของโครงข่ายประสาทเทียมบนฮาร์ดแวร์ที่มีอยู่ โพสต์นี้เราจะพูดถึงฮาร์ดแวร์ประเภทหนึ่งที่เรียกว่า 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