Bakgrund: På grund av sin höga känslighet, Smith-Waterman algoritm används allmänt för biologiska databassökningar. Tyvärr, den andra gradens tids komplexitet av denna algoritm gör det mycket tidskrävande. Den exponentiella tillväxten av biologiska databaser försämrar situationen ytterligare. För att påskynda denna algoritm har många insatser gjorts för att utveckla tekniker i högpresterande arkitekturer, särskilt de nyligen framväxande mångkärniga arkitekturerna och tillhörande programmeringsmodeller. Fynden: Detta dokument beskriver den senaste versionen av CUDASW++-programvaran, CUDASW++ 2.0, som ger nya bidrag till Smith-Waterman-proteindatabassökningar med hjälp av datorenhetsarkitektur (CUDA). En parallell Smith-Waterman-algoritm föreslås för att ytterligare optimera prestandan för CUDASW++ 1.0 baserat på den enda instruktionen, flera trådar (SIMT) abstraktion. För första gången har vi undersökt en partitionerad vektoriserad Smith-Waterman algoritm med hjälp av CUDA baserat på den virtualiserade enstaka instruktion, flera data (SIMD) abstraktion. Den optimerade SIMT och de partitionerade vektoriserade algoritmerna var riktmärken, och anmärkningsvärt, har liknande prestandaegenskaper. CUDASW++ 2.0 uppnår prestandaförbättring över CUDASW++ 1,0 så mycket som 1,74 (1,72) gånger med den optimerade SIMT-algoritmen och upp till 1,77 (1,66) gånger med hjälp av den partitionerade vektoriserade algoritmen, med en prestanda på upp till 17 (30) miljarder celler uppdatering per sekund (GCUPS) på en GPU GeForce GTX 280 (dual-GPU GeForce GTX 295) grafikkort. Slutsatser: CUDASW++ 2.0 är allmänt tillgänglig programvara med öppen källkod, skriven på programmeringsspråken CUDA och C++. Det får betydande prestandaförbättring över CUDASW++ 1.0 med antingen den optimerade SIMT-algoritmen eller den partitionerade vektoriserade algoritmen för Smith-Waterman-proteindatabassökningar genom att fullt ut utnyttja beräkningskapaciteten hos vanliga CUDA-aktiverade lågkostnads-GPU:er. Använda affin gap sanktioner. Löjtnant m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m för m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m m. [8] utnyttjar anpassade instruktioner för att accelerera SW-algoritmen för DNA-sekvenser på en Altera Stratix EP1S40 FPGA genom att dela SW-matrisen i rutnät på 8 × 8 celler. För SIMD vektorisering, särskilt strömmande SIMD förlängningar 2 (SSE2) teknik, finns det två grundläggande vektoriserade SW algoritmer tillgängliga: en beräknar algoritmen med SIMD vektorer parallellt med den mindre diagonal [9], och den andra använder SIMD vektorer parallellt med frågesekvensen i en sekventiell layout [10] eller en randig layout [11]. Den randiga SW-metoden [11] optimerades sedan för cellen/BE [12]. SWPS3 [13] utökar detta arbete för Cell/BE och förbättrar det även för ×86/SSE2 för att stödja flerkärniga processorer, och CBESW [14] är utformad för den Cell/BE-baserade PlayStation 3. För allmänna GPU:er, Liu et al. [15] Utvecklade en implementering av SW-algoritmen med OpenGL som ett första steg. Efter införandet av CUDA programmering modell, SW-CUDA [16] utvecklades med hjälp av CUDA, stödja flera G80 (och högre) GPUs. Denna algoritm distribuerar dock SW-beräkningen bland flerkärniga processorer och GPU:er, vilket gör den mycket beroende av CPU och inte riktigt kan utnyttja beräkningskraften hos GPU:er. Olika från SW-CUDA, CUDASW++ 1,0 [17], utformad för flera G200 (och högre) GPU:er, kompletterar alla SW beräkningar på GPU:er genom att fullt ut utnyttja de kraftfulla GPU:er. Såvitt vi vet var CUDASW++ 1.0 den snabbaste allmänt tillgängliga lösningen på den exakta SW-algoritmen på hårdvaran innan detta papper. I detta dokument presenterar vi den senaste versionen av CUDASW++-programvaran, CUDASW++ 2.0, som gör nya bidrag till SW-proteindatabassökningar med hjälp av CUDA genom att djupt utforska den beräknade kraften hos CUDA-aktiverade GPU:er. En optimerad SIMT SW algoritm föreslås för att ytterligare optimera prestandan för CUDASW++ 1.0 baserat på SIMT abstraktion. För första gången har vi undersökt en partitionerad vektoriserad SW algoritm med CUDA baserad på den virtualiserade SIMD abstraktionen. CUDASW++ 2.0 ger betydande prestandaförbättringar jämfört med CUDASW++ 1.0 med hjälp av antingen den optimerade SIMT eller de partitionerade vektoriserade algoritmerna på samma plattformar, vilket ger en prestanda på upp till 17 (30) GCUPS på ett grafikkort med en GPU GeForce GTX 280 (dual-GPU GeForce GTX 295). Dessutom överträffar det också de andra tidigare SW sekvensdatabas sökning implementationer på GPUs och några andra implementationer med hjälp av SSE2, Cell/B.E eller heuristics.
CUDASW++2.0 REF optimerade ytterligare prestandan för CUDASW++1.0 baserat på SIMT-uttaget av CUDA-aktiverade GPU och uppnådde 17 GCUPS och 30 GCUPS på enkelt NVIDIA GeForce GTX 280 GPU-kort respektive dual-NVIDIA GeForce GTX 295 GPU-kort.
CUDASW++2.0: enhanced Smith-Waterman protein database search on CUDA-enabled GPUs based on SIMT and virtualized SIMD abstractions
{'venue': 'BMC Research Notes', 'journal': 'BMC Research Notes', 'mag_field_of_study': ['Computer Science', 'Medicine']}