2010年10月12日 星期二

啟用 libfreevec 來替 PS3 增加些效能吧!

什麼是 libfreevec 呢?

它是一個利用 PowerPC 的 VMX 單元為主的 Linux 的 glibc 替代方案,
而所謂的 VMX 指的是 PowerPC CPU 系列的 SIMD 單元,
以 VMX 的 register 而言有 128 bits 的寬度,
因為它可以用一指令同時命令 16 個 char、8 個 short、 4 個 int、4 個 float 等資料,
所以它可比平時的指令有更多的平行度,
也因此有一定的效能提升。

但它終究沒有完全代替 glibc,
不過它還是有不少有用的替代涵式,
如 memcpy、strcpy、strcpm 等,
光這些基本涵式就有不小的效能增長啦!

好啦!還沒安裝 libfreevec 的朋友,
就請跟著 Shady 的說明步驟前進吧!

1. 請以 root 的身分登入 YDL。
2. 在 YDL 的文字模式或虛擬終端機下輸入 yum install libfreevec 來安裝 libfreevec 。
3. 然後用 vi /etc/sysconfig/libfreevec 來開啟 libfreevec 檔案。
4. 再來按 A 鍵後將 ENABLE_FREEVEC=no 改成 ENABLE_FREEVEC=yes。
5. 最後按一下 Esc 鍵後輸入 :wq 來記錄檔案。
6. 登出 YDL 後再行登入就完成了。

雖然 libfreevec 可在 Cell 上執行,
但由於它是以 PowerPC 為準,
所以 Cell 中唯一有支援的核心只有 PPU 而已,
而且 PPU 比起以前的 PowerPC 有刪減和增加及更改的指令,
可剛好 libfreevec 用到的預先快取串流系列指令都以 nop (無操作指令)執行,
所以利用 libfreevec 的涵式前可能要自己撰寫預先提取的指令了...XD

之後 Shady 會有些文章針對 libfreevec 的最佳化,
主要是針對預先快取的部分,
而有興趣了解 libfreevec 原始碼的朋友可從此處下載SRPM檔,
如有SRPM使用的問題請參考"鳥哥的 Linux 私房菜"裡的文章。

最後在這裡預告下次的文章標題:
撰寫程式來讓 PS3 顯示 BMP 圖。

沒有留言:

張貼留言