Beregn kerne - Compute kernel

I databehandling er en beregningskerne en rutine, der er sammensat til acceleratorer med høj kapacitet (såsom grafikbehandlingsenheder (GPU'er), digitale signalprocessorer (DSP'er) eller feltprogrammerbare gate-arrays (FPGA'er)), adskilt fra men brugt af et hovedprogram ( kører typisk på en central behandlingsenhed ). De kaldes undertiden compute shaders , der deler eksekveringsenheder med vertex shaders og pixel shaders på GPU'er, men er ikke begrænset til udførelse på en klasse enhed eller grafik-API'er .

Beskrivelse

Computerkerner svarer omtrent til indre sløjfer, når de implementerer algoritmer på traditionelle sprog (medmindre der ikke er nogen implicit sekventiel operation) eller til kode, der sendes til interne iteratorer .

De kan specificeres ved en særskilt programmeringssprog såsom " OpenCL C " (forvaltes af OpenCL API), som "beregne shaders " skrevet i en skygge sprog (forvaltet af en grafik-API som OpenGL ), eller indlejret direkte i programkode skrevet på et højt sprog som i tilfældet med C ++ AMP .

Vektor behandling

Dette programmeringsparadigme kortlægges godt til vektorprocessorer : der er en antagelse om, at hver påkaldelse af en kerne i en batch er uafhængig, hvilket muliggør dataparallel udførelse. Dog atomare operationer kan undertiden anvendes til synkronisering mellem elementer (indbyrdes afhængige arbejde), i nogle scenarier. Individuelle påkaldelser gives indekser (i 1 eller flere dimensioner) hvorfra vilkårlig adressering af bufferdata kan udføres (inklusive scatter-indsamlingsoperationer ), så længe den ikke-overlappende antagelse respekteres.

Vulkan API

Den Vulkan API tilvejebringer den mellemliggende SPIR-V repræsentation til at beskrive både Grafisk Shaders , og Compute Kerner, i et sprog uafhængig og maskine uafhængig måde. Hensigten er at lette sprogudvikling og give en mere naturlig evne til at udnytte GPU-beregningsfunktioner i tråd med hardwareudvikling såsom Unified Memory Architecture og Heterogen System Architecture . Dette muliggør tættere samarbejde mellem en CPU og GPU.

Se også

Referencer