# 2017q1 Homework5 (matrix) contributed by < `changyuanhua` > ## 開發環境 * 輸入指令 ` lscpu ` ``` Architecture: x86_64 CPU 作業模式: 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 每核心執行緒數:1 每通訊端核心數:4 Socket(s): 1 NUMA 節點: 1 供應商識別號: GenuineIntel CPU 家族: 6 型號: 94 Model name: Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz 製程: 3 CPU MHz: 799.890 CPU max MHz: 3200.0000 CPU min MHz: 800.0000 BogoMIPS: 4608.00 虛擬: VT-x L1d 快取: 32K L1i 快取: 32K L2 快取: 256K L3 快取: 6144K NUMA node0 CPU(s): 0-3 ``` ## 閱讀 Matrix Multiplication using SIMD * 閱讀 [Matrix Multiplication using SIMD](https://hackmd.io/s/Hk-llHEyx) ## 實做 sse 和 sse_prefetch 版本 * 參考 [0140454 的 matrix-multiplication](https://github.com/0140454/matrix-multiplication) * 修改 matrix_naive 原始程式碼並與 [0140454 的 matrix-multiplication](https://github.com/0140454/matrix-multiplication) 內的 sse 和 sse_prefetch 做結合 * [程式碼](https://github.com/changyuanhua/matrix_oo) * `make check` 後 ``` Execute tests/test-matrix... matrix: 34 44 54 64 82 108 134 160 34 44 54 64 82 108 134 160 equal ssematrix: 34 44 54 64 82 108 134 160 34 44 54 64 82 108 134 160 equal sse_prefetchmatrix: 34 44 54 64 82 108 134 160 34 44 54 64 82 108 134 160 equal OK! ``` ## 考慮不同大小的矩陣