Carved Marker

2000 年五月舊聞

新測試結果 (5/25/2000)

承一位學長幫忙,取得了 Athlon 600Mhz 的測試資料。所用的主機板是 ABIT KA7 (KX133 晶片組)。

另外,再加上了 Pentium III 800EB 的測試資料。使用的晶片組是 i820,配合 PC800 Direct Rambus RAM。

結果如下圖:

Vector test result diagram

因為結果太多了,所以有點亂。不過,還是可以一步步慢慢分析:

首先,是 P3/800EB 的測試結果。P3/800EB 是六倍頻,所以在 cache 不夠大時,整體的 latency 就會比較高。不過,好像比預料中的高了一些,真是奇怪。另外,由這個測試中,也可以看出 Coppermine 的 on-die L2 cache 的威力。在 32KB ~ 128KB 的範圍中,latency 只增加了約 4 cycles,非常驚人。使用 prefetch 之後,結果大致和 P3/500 類似,只是 latency 又稍微高了一些,應該就是受到六倍頻的影響。

再來,是 K7/600 的測試結果。在資料量小於 64KB 時,資料可以完全放入 K7 的 L1 D-cache 中,這時 K7 強大的 FPU 發揮了作用,其 latency 只有 40 cycles,明顯低於 P3 的 50 cycles。

在資料量為 128KB ~ 512KB 之間時,因為受到半速的 L2 cache 影響,所以 latency 大約增加了 10 cycles。這個結果和 P3/500 倒是十分相像。不過,K7/600 和 P3/500 的 L2 cache 的確是非常類似。

在資料量超過 512KB 之後,就得到主記憶體中取得資料了。這時,K7 所用的 EV6 bus 和 PC133 SDRAM 似乎發揮了作用,在沒有 prefetch 的情形下,latency 仍小於 130 cycles。不過,VIA 的 KX133 晶片組似乎不喜歡 prefetch 指令,其 Apollo 133 Pro 晶片組也有類似情形。在使用 prefetch 指令後,在資料量小時,latency 增加了 10 ~ 15 cycles,還算是可以接受的範圍。但是在資料量大時,prefetch 的效果似乎不甚理想,latency 仍達到約 120 cycles。看來 VIA 的晶片組真的不太喜歡 prefetch 指令。

如果使用 3DNow! 所內建的 prefetch 指令,也許情形會改善也說不定。不過,這可能要以後才能試了……

新文章 (5/24/2000)

上次那篇文章的「續集」已經完成啦!對上一篇文章有興趣的人可別錯過喔!

這裡可以直接看到這篇文章。

還有,現在本站所有的程式都已經列在程式集中了。有需要的人可以參考看看。

文章更新 (5/23/2000)

之前寫的那篇 CPU 和 cache 的文章,更新了幾個小地方。

一個是加入新的執行結果,並且用圖表來表示。另一個是修改了測試 latency 的程式,讓它在 Windows 95/98 下,能產生更穩定的結果。

如果想直接看這篇文章的話,請按這裡

新文章 (5/20/2000)

嗯,現在技術性文章已經正式開張了。現在只有一篇討論 CPU 和 cache 的文章,不過以後會慢慢增加的。

對這篇文章有什麼意見的話,請寄信給我。我會很樂意和大家討論的。

啊…… (5/18/2000)

又差不多有一個星期沒更新了……不過沒辦法,最近都忙東忙西的……

我在網頁連結中加了一些新的地方。

Direct3D 的話,只好晚點再說了…… :(

OpenGL 和 Direct3D (5/10/2000)

嗯……最近比較忙,所以有一陣子沒有更新網頁。以後我會常常更新的 :p

前一陣子想用 Direct3D 7 來改寫那 FSAA 程式,不過我已經很久沒寫 Direct3D 了……現在回去看 Direct3D,還是覺得 Direct3D 真是麻煩。還是 OpenGL 比較好。

不過,很多顯示卡的 OpenGL driver 有問題,也不是什麼了不起的事……這實在是相當討厭的事啊!

最近花了一點時間在看 NVIDIA 的 Direct3D Toolkit,等到有結果再來試試看。

FSAA 程式的執行畫面 (5/4/2000)

這裡附上幾張 FSAA 程式的執行結果:

No FSAA screenshot
No FSAA
4 samples FSAA screenshot
4 samples FSAA
16 samples FSAA screenshot
16 samples FSAA

可以看出差別吧!不過 4 samples FSAA 的速度只有 No FSAA 的四分之一,而 16 samples FSAA 的速度則只有 4 samples FSAA 的四分之一,算是相當的慢。所以,要使用 FSAA,還是得等到超快速的顯示晶片和顯示記憶體推出之後,才比較有意義吧!

FSAA 程式 (5/3/2000)

嗯……最近有關 FSAA 的東西還真不少。所以我也來寫了一個小程式,可以在一般支援 OpenGL 的顯示卡下,用 multi-sampling 的方式做出 FSAA 的效果喔!

這個程式的做法有點像 3dfx 的 T-Buffer,是用 glCopyTexSubImage2D 的方式來把每個畫面分別 copy 到各個貼圖中(也就是用貼圖來做 buffer),最後再把每張貼圖用 blend 的方式畫到 frame buffer 裡面,來達成 FSAA 的效果。理論上,這樣做會比用 accumulation buffer 快,因為現在的顯示卡都沒有硬體加速的 accumulation buffer。不過,我的 TNT2 Ultra 配合 3.84 driver,好像 glCopyTexSubImage2D 的效率相當慢,和 accumulation buffer 好像也沒什麼差別。用 GeForce 256 加上 5.14 driver 就好很多。

這個程式的原始碼和 Win32 執行檔可以從這裡抓。

NOTE: 這個程式一開始會使用 2 samples 的 FSAA 繪圖。用 [+][-] 鍵可以調整 FSAA 所用的 sample 數。用空白鍵可以暫停動畫,再按一次空白鍵則繼續動畫。


Sorry, Traditional Chinese only. This page is encoded in UTF-8.

Copyright© 2000 Ping-Che Chen