下載文章
下載提高英特爾® 至強(qiáng)® 處理器 5500 系列的醫(yī)療成像性能 [PDF 488KB]摘要
醫(yī)療成像領(lǐng)域競(jìng)爭(zhēng)激烈,那些占據(jù)市場(chǎng)的產(chǎn)品可在最短時(shí)間內(nèi)提供最好的圖像以保證患者診斷與治療的準(zhǔn)確性,從而最大程度提高了醫(yī)療質(zhì)量及醫(yī)務(wù)人員和醫(yī)療設(shè)備的效率。醫(yī)療成像技術(shù)的演進(jìn)導(dǎo)致數(shù)據(jù)集越來(lái)越大,算法也越來(lái)越復(fù)雜,從而不斷推高了對(duì)處理能力的要求,并為性能優(yōu)化拓展了許多機(jī)會(huì)。本簡(jiǎn)介介紹了為優(yōu)化英特爾® 至強(qiáng)® 處理器 5500 系列圖像重建算法所做的工作。與原始代碼相比,該工作將速度提高了 50 倍。內(nèi)容包括應(yīng)用特性描述(計(jì)算與數(shù)據(jù)訪問(wèn))、性能增強(qiáng)工作(線程與高速緩存優(yōu)化)及性能問(wèn)題(線程開(kāi)銷與數(shù)據(jù)訪問(wèn)模式)。簡(jiǎn)介
醫(yī)療成像掃描儀種類繁多,但大多數(shù)有一些共性:它們會(huì)產(chǎn)生巨大的數(shù)據(jù)流,而這些數(shù)據(jù)流需要進(jìn)行處理以生成有利于診斷的圖像。一些常見(jiàn)的成像系統(tǒng)(或所謂的醫(yī)療器械)有計(jì)算機(jī)斷層掃描 (CT)、磁共振成象 (MRI)、正電子發(fā)射斷層顯像 (PET)、及單光子發(fā)射計(jì)算機(jī)斷層成像術(shù) (SPECT)。如你所想,圖像質(zhì)量對(duì)于診斷的準(zhǔn)確性極為關(guān)鍵。在許多情況下,獲取圖像所需的時(shí)間在向患者提供恰當(dāng)護(hù)理的過(guò)程中具有十分重要的作用。掃描儀收集數(shù)據(jù)的時(shí)間與其將數(shù)據(jù)處理成圖像的時(shí)間相比顯得非常短,但是,在允許患者離開(kāi)之前,常常有必要看到圖像,以確定獲得了正確的圖像。顯然,這一處理時(shí)間限制了成像研究的次數(shù),成像研究可在隨時(shí)進(jìn)行,并會(huì)影響醫(yī)務(wù)人員和設(shè)備的效率(及投資回報(bào))。從多個(gè)方面來(lái)說(shuō)性能都很關(guān)鍵。
所需的處理量取決于具體的醫(yī)療器械,但一般會(huì)需要服務(wù)器集群或者甚至專用硬件在合理的時(shí)間內(nèi)提供圖像。最近,英特爾® 至強(qiáng)處理器 5500 系列幫助我們裁剪了一半的服務(wù)器(與前代服務(wù)器相比),但隨著掃描儀分辨率的提高,對(duì)處理速度的要求會(huì)繼續(xù)增加。
醫(yī)療成像設(shè)備介紹
醫(yī)療成像掃描儀(被稱為醫(yī)療行業(yè)的醫(yī)療設(shè)備)并不會(huì)生成圖像,而是產(chǎn)生巨大的數(shù)據(jù)流,工作人員需要對(duì)處理這些數(shù)據(jù)流以重建對(duì)診斷有用的圖像。所需重建處理的詳情依不同的醫(yī)療設(shè)備而有所不同。圖 1a
圖 1b
CT 掃描儀及重建的軸向立體切面圖
CT (即計(jì)算機(jī)斷層掃描)掃描儀當(dāng)這個(gè)環(huán)形物旋轉(zhuǎn),人體會(huì)穿過(guò)環(huán)形物的小孔。檢測(cè)器的檢測(cè)數(shù)據(jù)表示 x 射線能量的數(shù)量,該能量使其沿著檢測(cè)器和 x 射線源之間的一系列射線穿過(guò)身體。檢測(cè)器的數(shù)據(jù)用于重建表示人體內(nèi)部結(jié)果的圖像(立體切面圖)。CT 對(duì)于骨骼尤其靈敏。圖 1 向我們展示了橫截面,其中有肋骨、脊柱和一些內(nèi)臟。
圖 2a
圖 2b
運(yùn)行中的 MRI 掃描儀及人類頭骨蓋的重建立體切面圖
MRI(磁共振成像)包括在強(qiáng)烈的磁場(chǎng)及脈沖射頻場(chǎng)中,對(duì)組織中能量狀態(tài)變化的測(cè)量。一系列傳感器可檢測(cè)到這些能量變化及內(nèi)部組織結(jié)構(gòu)圖像中的后處理結(jié)果。MRI 非常易于區(qū)分不同的組織類型。圖 2 所示為人體頭骨的橫截面,詳細(xì)展示了大腦、眼睛、鼻子、嘴巴及其它構(gòu)造。
圖 3a
圖 3b
蓋子打開(kāi)的 PET 掃描儀及重建的立體切斷面,后者從新陳代謝活動(dòng)方面對(duì)正常頭顱及患有帕金森癥的頭顱進(jìn)行了比較
PET 及 SPECT 為核成像技術(shù),需要將放射性藥物注入人體中,并會(huì)生成圖像,顯示組織和肌肉中的新陳代謝過(guò)程是如何消耗這些藥物的。這兩種設(shè)備的具體構(gòu)造各不相同,但都可生成反應(yīng)新陳代謝活動(dòng)和非活動(dòng)器官的圖像。圖 3b 對(duì)正常人體及(患有帕金森癥)患者的頭部 PET 圖像進(jìn)行比較。圖 4b 所示為心臟的 SPECT“立體切片圖”,其中的“明亮”部位表示心肌正在接收代表活體心臟組織的放射性示蹤劑并使其進(jìn)行新陳代謝。由于數(shù)據(jù)的嘈雜本質(zhì),PET 和 SPECT 圖像比 CT 和 MRI 顯示的內(nèi)容要少,但可在計(jì)算密集型重建計(jì)算的幫助下處理這些噪音。 #p#page_title#e#
圖 4a
圖 4b
SPECT 掃描儀和展示血液灌注的人類心臟的重建圖像
圖像重建代碼
與常規(guī)重建相比,新算法初步的單線程實(shí)施多耗費(fèi)了很多時(shí)間。該代碼針對(duì)英特爾® 架構(gòu)進(jìn)行了分析和優(yōu)化。所有的工作都是在配備了 2 個(gè) 英特爾® 至強(qiáng)® 處理器 X5560 的服務(wù)器平臺(tái)上進(jìn)行的,其中處理器的運(yùn)行速度為 2.8GHz,內(nèi)存為 12GB。操作系統(tǒng)為 64 為 Linux*。代碼分析
代碼檢驗(yàn)顯示,代碼被整合到在較大數(shù)據(jù)集(若干千兆字節(jié))的許多小子集上執(zhí)行各種運(yùn)算的序列片段中。根據(jù)一些復(fù)雜的計(jì)算結(jié)果,從大數(shù)據(jù)集中以非均勻的方式提取子集。代碼段只在數(shù)據(jù)子集上進(jìn)行了幾項(xiàng)簡(jiǎn)單的算術(shù)運(yùn)算。鑒于非均勻的尋址(非預(yù)取或高速緩存友好型),我們預(yù)計(jì)內(nèi)存訪問(wèn)會(huì)成為一種限制因素,且檢驗(yàn)無(wú)法明確高速緩存的效率。采用英特爾® VTune™ 性能分析器,我們斷定主代碼段大約占了 90% 的執(zhí)行時(shí)間(總時(shí)鐘周期)。在這些“熱點(diǎn)”中,CPI(每條指令時(shí)鐘周期)非常高。經(jīng)過(guò)進(jìn)一步仔細(xì)研究高速緩存的性能,我們發(fā)現(xiàn)二級(jí)高速緩存缺失是合理的。那么,是什么導(dǎo)致了高 CPI 呢?經(jīng)過(guò)深入研究,我們發(fā)現(xiàn)多了一半的頁(yè)面查詢工作。這是有道理的,因?yàn)槲覀兊墓ぷ骷劝?4kB 頁(yè)面的數(shù)據(jù) TLB 的容量大許多。英特爾至強(qiáng)處理器 X5560 支持 2MB 的大頁(yè)面,有助于在每次 DTLB 輸入時(shí)處理 500 倍的數(shù)據(jù),從而大大減少了處理大型數(shù)據(jù)集所需進(jìn)行的頁(yè)面查看。實(shí)施 2MB 的大頁(yè)面使頁(yè)面瀏覽不再大不了。
對(duì)數(shù)據(jù)索引的進(jìn)一步調(diào)查表明,非均勻的跨度和數(shù)據(jù)訪問(wèn)遍布大型數(shù)據(jù)集。我們對(duì)數(shù)據(jù)進(jìn)行了重新整理,以便索引一直增加,同時(shí)在子集之間實(shí)現(xiàn)最大化的高速緩存再使用。除了提高高速緩存的再使用率之外,這還有助于處理器的預(yù)取器更好地協(xié)調(diào)工作。大頁(yè)面和數(shù)據(jù)重排序的合力將性能提高了兩倍。
為了讓目標(biāo)平臺(tái)發(fā)揮最大效用,我們用英特爾® C/C++ 編譯器取代了 GNU GCC* 編譯器。這一改變將性能又提高了 1.2 倍。
我們通過(guò)在可用線程間劃分?jǐn)?shù)據(jù)元素的數(shù)量,開(kāi)發(fā)出一種數(shù)據(jù)并行的線程模型。在若干地方的線程間實(shí)現(xiàn)同步是很有必要的。我們希望同步過(guò)程輕便,這樣可以使用非常簡(jiǎn)單的自旋鎖。
英特爾® 至強(qiáng)® 5560 處理器結(jié)果
采取的行動(dòng) | 加速1 |
大頁(yè)面 + 數(shù)據(jù)重排 | 2倍 |
英特爾® C/C++ 編譯器 | 1.2倍 |
多線程處理(16 條線程) | 10倍 |
性能調(diào)優(yōu)熱點(diǎn) | 1.7倍 |
總計(jì) | ~50倍 |
Table 1
表 1 概述了英特爾至強(qiáng) 5560 處理器的改進(jìn)之處。
- 通過(guò)實(shí)施大頁(yè)面和重排數(shù)據(jù)訪問(wèn),實(shí)現(xiàn)了 2 倍的加速。
- 將英特爾 C/C++ 編譯器代替 GNU GCC* 又將性能提高了 20%。
- 數(shù)據(jù)并行線程處理擴(kuò)展性良好,并借助配有 16條線程的英特爾至強(qiáng)處理器 X5560 (支持 SMT)實(shí)現(xiàn)了 10 倍的加速。
- 在熱點(diǎn)實(shí)施額外編碼變更再次實(shí)現(xiàn)了 1.7 倍的加速。
- 總體而言,大概實(shí)現(xiàn)了 50 倍的加速。
未來(lái)的性能優(yōu)化
關(guān)于這一工作可用的數(shù)據(jù)集,我們注意到當(dāng)線程的數(shù)量增加至 8-12 條以上,可擴(kuò)展性就趨于平穩(wěn)狀態(tài)。通過(guò)檢查每天線程完成的工作并將其與線程同步開(kāi)銷進(jìn)行對(duì)比,我們順利解釋了這個(gè)問(wèn)題。盡管使用了非常簡(jiǎn)單的自旋鎖對(duì)線程進(jìn)行同步,但每條線程完成的計(jì)算量卻與線程的數(shù)量成比例地降低,而同步時(shí)間則以同樣的比例增加。我們預(yù)計(jì),同步開(kāi)銷將會(huì)在 20-28 條線程間超過(guò)計(jì)算時(shí)間,從而限制本解決方案對(duì)具有更多線程的系統(tǒng)的效用。對(duì)于這些未來(lái)的系統(tǒng),或許數(shù)據(jù)和流程并行方法的組合將進(jìn)一步提升性能。 #p#page_title#e#總結(jié)
雖然改善醫(yī)療圖像質(zhì)量的方法是眾所周知,但這些方法一直有賴于計(jì)算機(jī)行業(yè)提供經(jīng)濟(jì)高效的計(jì)算能力。該工作證明,通過(guò)使用英特爾® 編譯器、英特爾® Vtune™ 性能分析器及性能調(diào)優(yōu)方法為英特爾硬件優(yōu)化它們,我們?cè)谔幚磉@些計(jì)算密集型方法方面取得了巨大的進(jìn)步。我們認(rèn)為,通過(guò)提供成本合理和有利于準(zhǔn)確及時(shí)診斷的改進(jìn)圖像、改善對(duì)患者的護(hù)理及更有效地使用人員和設(shè)備資源,可為更優(yōu)質(zhì)的醫(yī)療保健服務(wù)創(chuàng)造條件