Vítejte na HPC info : Přihlášení | Registrace | Nápověda
v
Titulní stránka Blogy O serveru

HPC info

Nástroje pro FPGA brzdí rozvoj HPC

Greg Cooke je vedoucí týmu pro výzkum nových technologií ve velké bance v Chicagu. Určitě tedy nespadá do představ o běžném uživateli nástrojů pro návrh FPGA, ale přesto je typickým představitelem nové skupiny zájemců o FPGA, pocházejících z oblastí jako finanční služby, biologický výzkum a průzkum ložisek ropy a plynu. Tito lidé, ačkoliv nemají žádné zkušenosti s FPGA hardwarem, se snaží využívat FPGA systémy v HPC a často přitom narážejí na nepřístupnost nástrojů pro FPGA design.

 

FPGA je technologie, která je schopna poskytnout řádové zrychlení náročných výpočtů oproti běžným procesorům, a přitom značně snížit spotřebu energie celého systému. Nepřekvapí proto, že se FPGA pouští daleko od svých tradičních uplatnění a míří do HPC modulů a desek, kde nachází využití ve stále rostoucím počtu aplikací.

 

Tento stále ještě dřímající trh má obrovský potenciál, ale je zde jeden základní problém. Nástroje pro syntézu, routování a návrh FPGA jsou psány pro návrháře hardware a ne pro běžné programátory, kteří se snaží urychlit výpočet svých algoritmů. Nová generace překladačů jazyka C určených pro nejnižší systémovou úroveň se snaží překlenout tuto propast mezi hardware a software, ale bude potřeba ještě spousta práce, než bude možno jednoduše portovat algoritmus napsaný v C přímo na FPGA.

 

Ve své Chicagské bance pracuje Greg Cooke s výpočetním gridem, na kterém se provádějí výpočty investičního rizika pro dluhopisy a obligace. Tyto cenné papíry jsou termínovány až na 30 let a kalkulace rizik jsou proto extrémně náročné výpočetní problémy. „Než jsme přišli na FPGA, přidávali jsme do našeho datacentra jeden serverový blade za druhým,“ vypráví Cooke. „Nakonec jsme museli řešit problémy s přehříváním celého centra, a tehdy nám přišla technologie FPGA jako schůdná alternativa.“

 

Greg Cooke nyní pracuje na pilotním projektu ve kterém jsou FPGA použity na zrychlení Black-Scholesova algoritmu, což je stochastický proces často využívaný v obchodu s cennými papíry. Jedním z cílu je umožnit programátorům portovat existující programy, napsané v C, přímo do FPGA, bez nutnosti jakkoliv používat VHDL. „Chci pracovat výhradně v jazyce C,“ říká Cooke. „Problém je, že současné FPGA nástroje pro C nejsou dost vyspělé, aby dokázaly vše, co od nich potřebujeme.“

 

Cooke má předchozí zkušenosti z oblasti embedded hardware, dříve dokonce pracoval na aplikacích pro výzkum v kosmu. „V celé bance jsem však našel jen dva lidi, kteří měli dříve nějakou zkušenost s FPGA,“ komentuje situaci v práci.

 

„Současné překladače jazyka C pro FPGA nepodporují celou syntaxi jazyka,“ říká Cooke. Má na mysli například typ „struct“, a další jazykové konstrukce, které se často používají když se do programu v C přenáší části kódu v C++. Ani příkaz „switch“ není podporován. Greg Cooke k tomu dodává: „jsou to jazykové konstrukce, které návrháři hardware nepoužívají, takže teď tlačíme na dodavatele C překladačů pro FPGA, aby tyto věci implementovali.“

 

Dalším problémem je routovaní a placement v FPGA. Když Cooke minulé léto zkoušel routing pro jeden větší program, jeho 16GB stroji nestačila paměť. Kontaktovaný dodavatel FPGA předpověděl, že požadovaná úloha má zabrat všech 16GB paměti a odhadl dobu běhu na jeden týden. „To prostě nejde,“ říká Cooke. „My potřebujeme v programu provádět změny a překládat a spouštět různé verze i několikrát denně.“

 

Překladač, který Cooke používal, byl Impulse C od firmy Impulse Accelerated Technologies Inc. „Je to implementace jazyka blízká ANSI C a podporuje přenositelnost napříč různými systémy.,“ říká o kompilátoru Cooke. „Prospěl by mu ale lepší pipelining a mohl by tvořit kratší výsledný kód.“

 

Urychlování částic

 

Peter Messner je zástupce viceprezidenta pro technologii urychlovačů ve společnosti X-Corp, která provádí zakázkové inženýrské práce pro fyzikální výpočty. Jeho prací je vytvářet simulace zvané „particle push“, tedy případy, kdy jsou částice urychleny a pak je vyhodnocena jejich rychlost a poloha. Také Messner používá překladač Impulse C, kterým připravuje FPGA desky od společnosti Pico Computing Inc. „Zoufale se snažíme urychlovat částice co nejrychleji, a nyní, na procesoru Opteron, trvá jedno urychlení přibližně 0,7 ms,“ říká o simulaci Messner. Sám není jistý, co vše FPGA dokáže, protože se ještě nepodařilo algoritmus na FPGA rozchodit, ale doufá v pěti- až desetinásobné zrychlení.

 

Peter Messner říká: „líbí se mi přístup skrze Impulse C, ale jsou v něm překážky na každém kroku, od samého začátku, týkajícího se způsobu, jakým píšeme algoritmy. Nevyužíváme všechny možnosti paralelismu, které FPGA nabízí. I když překladač automaticky dokáže použít paralelismus na úrovni jednotlivých instrukcí, je čistě záležitostí programátora zavádět paralelismus na úrovni systému. Bylo by skvělé, kdyby to celé bylo tak jednoduché jako kompilace na běžném C překladači.“

 

Robert Schuler, inženýr z NASA, který pracuje na softwarovém radiu, chtěl použít překladač jazyka C k tomu, aby převedl za sebou jdoucí části svého programu pro zpracování signálu do FPGA. Posléze ale zjistil, že nástroje pro FPGA a běžné programy v C používají rozdílné paměťové modely. Důsledkem toho je, že programátoři ve skutečnosti nemůžou použít celý program pro aplikaci v FPGA. „Ve většině případů je potřebné množství práce stejné, jako kdyby jste celou aplikaci napsali znovu od začátku,“ říká Schuler.

 

Velký trh

 

Možnosti HPC trhu však nejsou pro dodavatele FPGA ztraceny. „Začnete s aplikacemi jako finančnictví a těžba ropy a plynu, a oni začnou kupovat tisíce FPGA,“ říká Steve Lass, ředitel marketingu softwarových produktů firmy Xilinx. „V mých představách tento trend expanduje až do okamžiku, kdy se pomocí FPGA bude urychlovat prakticky všechno,“ dodává Lass. Nyní se podle něj Xilinx soustředí na lidi, kteří prorážejí s prvními aplikacemi FPGAHPC oblasti, a to především ve finančních službách. Současné nástroje jsou podle Lasse dostačující přesně pro tyto oblasti. Pro aplikace psané v čistém ANSI C bez jakýchkoliv úprav zatím nástroje chybí.

Lass si uvědomuje, že proces routingu FPGA musí být mnohem rychlejší, má li být pro HPC uživatele použitelný . „V současnosti routing zabere řádově hodiny,“ popisuje situaci. „Pokud by se nám to podařilo zkrátit na takových 10 minut, myslím, že to je přesně to, co by lidi od HPC chtěli.“ Lass také poznamenal, že současné nástroje pro placement a routing jsou psány pro návrháře hardware, a při běhu generují chybové hlášení kterým tvůrci software nemohou rozumět. Jedno z řešení je podle něj u těchto nástrojů pro nejnižší úroveň prostě skrýt detaily.

 

Shodně se k celé věci staví Misha Burich, vice prezident pro software a system engineering u společnosti Altera, který tvrdí, že jednou z cest jak umožnit programování pro FPGA je vytvořit API, které před programátory skryje hardwarové detaily. „Někdo by prostě vytvořil jednotlivé funkce na FPGA a pak poskytl API vývojářům aplikací,“ přestavuje si celou věc Burich. „V tomto smyslu by pak ale FPGA ve skutečnosti neprogramovali vývojáři aplikace.“ Jako příklad Burich uvedl výrobce FPGA koprocesorů XtremeData, která spojuje překladač Impulse C, balík funkční podpory pro danou platformu a matematickou knihovnu IEEE 754 do integrovaného řešení pro finanční analytiky. Co se routování a placementu týče, podle Buricha má společnost Altera rozběhnutý výzkumný projekt, který má za úkol zjistit, zdali akcelerátor založený na FPGA je dobrá metoda k urychlení samotného procesu placementu a routingu.

 

Překladače pro FPGA pro použití v HPC v současnosti poskytuje několik firem. Celoxica nabízí balík DK Design Suite, určený pro tvorbu, simulaci a syntézu algoritmů v jazyce C. Cílem je podle vice prezidenta pro marketing firmy Jeffa Jussela umožnit, aby programování FPGA bylo stejně jednoduché jako programování běžného procesoru. „Ideální by bylo umožnit uživatelům psát v jakémkoliv druhu jazyka C“, říká Jussel. „Ve skutečnosti je ale možné vytvořit takový program v C, který se do FPGA syntetizovat nedá. Proto po uživatelích musíme vyžadovat některé speciální kroky a postupy.“

 

Pro úpravy paralelních algoritmů Celoxica poskytuje proprietární jazyk zvaný Handel-C. Aby snížila programátorskou zátěž, nabízí firma speciální možnosti překladače a speciální knihovny pro vybrané algoritmy. „Pokud je to v oblasti finančnictví a my víme, co přesně děláte, jsme schopni vám umožnit vstup v čistém C,“ tvrdí Jussel. „Co se týče oblastí těžby ropy a plynu, víme jak vypadají algoritmy pro akustické vlny, a jsme schopni je vzít a převést.“

 

Všichni se asi shodnou na tom, co tvrdí Dave Pellerin, technologický vedoucí společnosti Impulse Accelerated Technologies: „všechny nástroje, naše, i ty od konkurence, se neustále výrazně zlepšují.“

 

Převzato z EETimes.com

Vyšlo 6. února 2007 11:08 | Vložil: Josef Nevrly (SPRINX) | | |
Kategorie: , ,

Komentáře

 

Michal Kvasnička napsal:

Pokud se v tomto článku tvrdí, že jsou zatím dostupné nástroje pro programování v C pro FPGA poněkud těžkopádné, je podle mne realita ještě horší. Zatím nelze vůbec mluvit o nejakém programování numerických algoritmů pro FPGA přímo v C bez nutnosti velice detailních znalostí jak ošetřit např. I/O operace, atd. Zde se uživatel bez dobre znalosti FPGA resp. VHDL vůbec neobejde.

Podle mne, si na plnohodnotné C pro FPGA počkáme ještě řadu let a není vůbec jisté zda to budou nástroje podle představ potenciálních uživatelů, kteří nechtějí znát nic o FPGA, ale chtějí je využívat jako numerické akcelerátory.

Např. FPGA karty, které v současnosti poskytuje SGI (http://www.sgi.com/products/rasc/) jsou pro běžného uživatele takřka nepoužitelné. V podstatě jedinou možností jejich použití je nechat si vytvořit potřebný kód na zakázku. Nelze tedy mluvit o typickém akcelerátoru, pro který si uživatel sám a a efektivně píše kód, která pak průběžně ladí a přizpůsobuje.
6. února 2007, 12:15

Váš komentář

(povinná položka) 
(volitelná položka)
(povinná položka) 
Nenašli jste na této stránce něco, co jste hledali? Nebo byste si přáli něco dodat? Pište nám do fóra přání a stížností.

Kalendář článků

<únor 2007>
poútstčtsone
2930311234
567891011
12131415161718
19202122232425
2627281234
567891011