Ipinakilala sa 4th Gen Xeon Scalable”Sapphire Rapids”na mga processor ang iba’t ibang bagong accelerator na available sa mga piling SKU o sa pamamagitan ng Intel On Demand na alok. Ang isa sa mga unang hamon doon ay ang maagang mga limitasyon sa suporta ng software ng accelerator at maraming upstream na open-source (o kahit na laganap lang) na software na hindi pa pinagana upang magamit ang mga bagong accelerators na ito. Ang isa sa mga pagpapahusay sa harap na iyon ay ang mga inhinyero ng Intel na nagtatrabaho sa isang IAA crypto compression driver para sa kernel upang ang In-Memory Analytics Accelerator ay maaaring maging malinaw na naa-access sa mga feature ng kernel na gumagamit ng crypto API.
Sa nakalipas na ilang buwan, ang IAA Crypto Compression Driver para sa Linux kernel ay dumaan sa kalahating dosenang mga rebisyon hanggang sa ito ay gumagana patungo sa mainline. Ginagawang available ng bagong driver na ito ang Intel IAA accelerator sa pamamagitan ng kernel crypto API at magagamit naman ng kernel code na nagta-target sa API na iyon, gaya ng Zswap at zRAM. Ang driver ay nagbibigay ng parehong sync at async na mga bersyon ng DEFLATE algorithm na ipinatupad ng hardware.
Habang magbubukas ang driver na ito ng mga kernel use-case para sa IAA accelerator, kinikilala ng driver patch notes ang mga unang pananakit ng ulo sa pagse-set up ng Sapphire Rapids accelerators, ibig sabihin, hindi pa rin ito magiging out-of-the-box kapag nagbo-boot ng isang may kakayahang Linux software stack:
“Ang hardware ng IAA ay medyo kumplikado at sa pangkalahatan ay nangangailangan ng isang may kaalamang administrator na may sapat na detalyadong pag-unawa sa hardware upang itakda ito bago ito magamit. Gaya ng nabanggit sa Dokumentasyon, kadalasang nangangailangan ito ng paggamit ng isang espesyal na tool na tinatawag na accel-config upang mabilang at i-configure ang mga workqueu ng IAA, engine, atbp, bagama’t maaari rin itong gawin gamit lamang ang mga sysfs file.
Ang pagpapatakbo ng driver ay sumasalamin sa pangangailangang ito at nagbibigay-daan lamang sa hardware na ma-access sa pamamagitan ng crypto layer kapag ang hardware ay na-configure at nakatali sa IAA crypto driver. Bilang isang IDXD sub-driver, ang IAA crypto driver ay mahalagang nagmamay-ari ng ang hardware hanggang sa tahasan itong ibigay ng administrator. Awtomatikong nangyayari ito kapag pinagana ng administrator ang unang workqueue ng IAA o hindi pinagana ang huli; ang iaa_crypto (sync at async) na mga algorithm ay nakarehistro kapag ang unang workqueue ay pinagana, at inaalis sa pagkakarehistro kapag ang huli ay hindi pinagana.
Ang normal na pagkakasunud-sunod ng mga operasyon ay karaniwang:
i-configure ang hardware gamit ang accel-config o sysfs
i-configure ang iaa crypto driver (tingnan sa ibaba)
i-configure ang subsystem hal. zswap/zram para gamitin ang iaa_crypto algo
patakbuhin ang workload”
Ngunit kapag na-setup na ang lahat at sumama sa iminungkahing driver na ito, ang mga resulta ng performance ay medyo dramatic sa IAA paggamit kumpara sa purong software:
Maaga sa buwang ito isang v6 patch series para sa kernel driver na ito ay ipinadala para sa pagsusuri. Bagama’t binigyan ng timing at hindi pa nakukuha ng cryptodev.git branch, malamang na ang driver na ito ay magiging handa sa oras para sa paparating na Linux v6.5 cycle. Isa pang balakid ay posibleng itinaas noong nakaraang linggo ng Linux crypto subsystem maintainer na si Herbert Xu:
Kaya sinabi mo na ang canned ay hindi tugma sa generic na deflate algorithm. Nangangahulugan ba iyon na walang paraan para ma-decompress nito ang isang bagay na na-compress ng generic na deflate algorithm, at vice versa ang naka-compress na output nito ay hindi ma-decompress ng generic deflate ?
Hindi kami nagdaragdag ng algorithm sa Crypto API kung ang tanging pagpapatupad ay sa pamamagitan ng hardware. IOW kung nagdaragdag ka ng bagong algorithm, dapat ay isang bersyon ng software ang unang patch.
Mukhang totoo ang pagkakaibang ito sa pagpapatupad ng deflate ng Intel. Nagbabala ang mga developer ng ClickHouse sa kanilang suporta sa Intel QPL na kung gusto mong ilipat ang mga database na pinabilis ng Intel IAA sa pagitan ng mga host, kakailanganin mo munang i-convert ang lahat ng data bago ito alisin sa server. Kung saan ang kaso kung ang driver na ito ay mapupunta sa mainline, kakailanganin ng Intel na magbigay din ng pagpapatupad ng software para sa kernel.