# 多處理機平行程式設計 作業4-2說明 ###### tags: `成大多處理機平行程式設計` [ToC] ## 題目:我要加速 ### 題目敘述 給定一個n 層全連接層的類神經網路,其中第 ${1}$ 層是輸入層、第 ${n}$ 層是輸出層、其它為隱藏層。第 $i$ 層具有${P_i}$ 個神經元,其中${1 ≤ i ≤ n}$。第i 層中每一個神經元都有一個連結連到第$i+1$ 層中的每一個神經元,其中${1 ≤ i < n}$。令${w^i_{j,k}}$為第 $i$ 層中第 $j$ 個神經元連結到第 $i+1$ 層中第 $k$ 個神經元的權重。令${[v^i_1v^i_2v^i_3v^i_4...]}$為第 $i$ 層中神經元的值,其中${1 ≤ i ≤ n}$。則我們可以得到如下${v^{i+1}_k = \sum^{P_i}_{j=1}w^i_{j,k}v^i_j}$,其中${1 ≤ k ≤ P_{i+1}}$。我們想要以最快的速度從輸入層得到輸出層的結果。請求出此類神經網路所需的最小乘法數。 ### 輸入輸出說明 第一行只有一個數字 ${n}$ , 代表有 ${n}$ 層全連接層的類神經網路。第二行給定一個序列${P_1P_2... P_n}$代表每一層的維度,${P_1P_2... P_n}$數字之間只以空白區隔。輸出此類神經網路所需的最小乘法數,如下面解答所示,無須換行。 資料範圍: * $1 \leq n < 30$ * $1 < P_i < 50$ 例如: ${3}$ ${10 \space 30 \space 10}$ 解答: ${600}$ <font color="#f00">注意: 1. 請使用 $pthread$ 來實作</font> ### 繳交格式 在Github上傳一個<font color="#f00">程式碼檔案以及對應的Makefile檔案</font>,程式碼檔名為 學號_hw4_2 例如:p12345678_hw4_2.c p12345678_hw4_2.cpp都可 Makefile就叫Makefile