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 FPGA v HPC 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