Phát triển phương pháp giải phương trình đạo hàm riêng bằng công nghệ Mạng nơ ron tế bào
3.2.7. Thực thi thuật toán trên chip FPGA
3.2.7.1. Giới thiệu một số loại chip FPGA
Chip FPGA (Field Programmable Gate Array) là công nghệ sản xuất chip điện tử lập trình được, nhà sản xuất tạo sẵn những tài nguyên trên chip là các phần tử lô gic (Logic Element). Người dùng có thể dùng ngôn ngữ mô tả phần cứng như VHDL, Verilog... để cấu hình thành mạch tính toán xử lý cho những tác vụ nào đó. Hiện nay, với số tài nguyên khá lớn, giá thành rẻ, khả năng tái cấu hình mạnh công nghệ FPGA tạo cơ hội rất thuận lợi cho việc chế tạo mạng CNN. Một số loại chip FPGA mới trên thị trường như:
- Virtex®-5 FPGAs: Dòng chip của hãng Xilinx, với công nghệ 65nm đầu tiên, (Vertex®- 4 có kích thước 90nm) làm việc với điện áp 1.0 (V), có tới 330 000 cổng lô gic; 1 200 chân vào/ra; bộ nguồn PowerPC® 440; chuẩn giao tiếp MAC.
- Virtex®-6 FPGAs: Là họ Vertex mới và tiên tiến nhất tiêu thụ năng lượng ít hơn 50% và chi phí hoạt động rẻ hơn 20% so với các version cũ. Vertex 6 cũng sử dụng khối ASMBLTM
và cho phép mở rộng khả năng thiết kế các khối lô gic tốc độ cao, nhiều khối chức năng sẵn có dạng “Buil-in”.
- Spartan®-6: Phát triển từ dòng Spartan của hãng Altera với công nghệ 45 nm tiêu thụ năng lượng nhỏ có tới 150 000 cổng lô gic; khối giao tiếp tích hợp PCI Express® tốc độ trao đổi đạt tới 3 125 Gb/giây; có thể thêm bộ nhớ ngoài.
-Stratix® 3: Sử dụng công nghệ 65 nm tiêu thụ ít năng lượng có các chức năng xử lý tích hợp tốc độ cao, giao diện làm việc qua mạng, có công cụ chuyên dụng cho xử lý ảnh nhanh
-Stratix® 4: Dùng công nghệ 40 nm có tới 820 000 phần tử xử lý lô gic, một số tính năng còn vượt trội hơn Vertex-6.
3.2.7.2. Thiết kế chế tạo mạng CNN bằng công nghệ FPGA
Dựa trên mẫu tìm được, ta có thể thiết kế kiến trúc phần cứng của mạng CNN thực hiện tính toán. Theo lý thuyết Chua và Lyang [12], [40] thì các mẫu trên
thỏa mãn các điều kiện ổn định cho việc thiết kế hệ CNN. Chúng ta cần hai lớp CNN 1D để thực hiện tính toán cho hệ PDE của bài toán một lớp tính cho hàm h, một lớp tính cho hàm Q. Sơ đồ khối kiến trúc cho hệ CNN như trong Hình 3.15, (tuy nhiên còn một số khối chức năng chưa biểu diễn ở đây, như phần ghép nối trao đổi dữ liệu, bộ nhớ dữ liệu trung gian, bộ giữ xung nhịp đồng hồ...)
Mỗi một tế bào trong một lớp có kiến trúc giống nhau thực hiện tính toán cho từng lớp, giữa các lớp cũng có liên kết tính toán với nhau. Mạch điện cho tế bào trong lớp h, Q có dạng như trong Hình 3.16.
Đây chỉ là kiến trúc tính toán của một tế bào, nhưng các tế bào có kiến trúc giống hệt nhau nên khi cấu hình chúng ta chỉ cần copy cho đủ số lượng tế bào như thiết kế.
3.2.7.3.Cấu hình mạng CNNsử dụng chip Cyclone 2
Hình 3.16 Mạch tính toán cho mỗi tế bào hàm h(x,t); Q(x,t)
hi,t Bh q AhQ Qi1 + h i1 AQ Qi1 hi Qi,t AQh + Qi1 /
Hình 3.15 Kiến trúc mạch khối cho bài toán dòng chảy một chiều
Qi-1 Qi+1 hi-1 hi hi+1 qi 1 1 2 i i Q b xh -gb(I-J) Qi x 2 gbhi x 2 gbh x b 2 1 2b x 1 1 i 1 i xh b 2 Q qi kq 1 1 b
Nhóm nghiên cứu đã sử dụng chip Cyclone 2- DE2, của hãng Altera để chế tạo mạng CNN thử nghiệm tính toán cho bài toán. Chip DE2 có các cấu hình ứng với tài nguyên như trong Bảng 3.2
Bảng 3.2 Các loại chip dòng DE2 và các tài nguyên
Trong dòng chip DE2 nhóm đã sử dụng loại chip EP2C35 (Bảng 3.2) để cấu hình cho bài toán dòng chảy một chiều. Kiến trúc cơ bản của vỉ mạch phần cứng của chip như trong Hình 3.17
Mỗi LE có ba đầu ra độc lập, hai đầu cho việc xác định toạ độ dòng, cột của mỗi phần tử, một để liên kết truyền dữ liệu.
Như trong Bảng 3.2, tài nguyên của chip Cyclone II EP2C35 gồm: 33216 phần tử LE; 105 khối RAM M4K, mỗi khối có kích thước 4K bit cộng với 512 bit nên tổng số bít RAM là 105 * (4*1024+512) = 483840 tốc độ truy xuấtd tối đa 250MHz; 35 khối nhân DSP 18x18 bit (tương đương với 70 khối nhân 9x9, sử dụng trong thiết kế bài toán ta chỉ cần sử dụng khối 9x9 là đủ cho kích thước dữ liệu); 4
khối PLL; 475 chân vào/ra; tốc độ tính toán tối đa là 250MHz.
Để thực hiện tính toán ta phải sử dụng các phần tử LE và khối DSP cấu hình tạo ra các khối tính toán số học (cộng, trừ, nhân, chia). Sau đó ta mới tạo ra các tế bào tính toán cho hai lớp h, Q. Để tiết kiệm tài nguyên và tăng tốc độ vào/ra nhóm