Wednesday, March 13, 2013

High Performance Computing & Other "Digression" - Practical GPGPU & SSE | Отклонение към внедряване на високопроизводителни векторни изчисления и др.

SIMD, SSE, GPGPU, OpenCL ...

(For English: see below) За хората, които чакат да излезе "Тошко 2" - тактическите краткосрочни задачи леко се изместиха към бързо внедряване и проучване на възможностите на технологии, които са били отлагани, а ми трябват за да мога по-бързо да доразработя и променям "Тошко 2" и следващите, а също и в помощ на други по-универсални приложения, напр. филмовия софтуер, който ще ми трябва за рекламата... :) Успехът в дългосрочната стратегия понякога изисква гъвкава краткосрочна тактика и привидно отстъпление, за да последва по-мощно нападение! :)

Каква е връзката на Тошко 2 с това?

Конкретно за синтеза на звук в "Тошко 2" тази новоотключена мощ не е наложителна пряко, при един от тестовете той синтезира близо 30 минути говор и паралелно го записваше на твърдия диск за около 2 секунди (70-тина МБ звук), като работи в една нишка. В крайната версия ще прави малко повече сметки, но те са незначителни на фона на тази чудовищна бързина. Някои от тези технологии обаче ще ускорят оставащите детайли от разработката на едни функции, които изискват по-специални технологии за въвеждане на данни.


Не мога да разкрия конкретни детайли за приложенията на технологиите, но напр. най-накрая експресно внедрих употребата на мощни векторни инструкции SSE - до версия SSSE3*, SSE-то вече започна да ми служи добре като ускори няколко пъти операция, която е основа в една друга нишка от изследвания.

Внедрявам и употребата на модерно** GPGPU (впрягане на видеокартата за произволни сметки), което ще е още по-чутовно ускорение дори и на най-скромните видеокарти, които поддържат технологията. Това ми трябва за видео софтуера и за други по-авангардни неща.

И др. по-абстрактни и неочевидни ускоряващи неща в други насоки, които обаче са тайна засега.

*Яд ме е, че досега не съм го бил направил на практика, при положение че съм програмирал на машинен език и сам съм си смятал адреси на ръка и помнил кодове на инструкции от рода на A9 20 8D 40 40 още от невръстна възраст. Проучих и по-новите разширения на инструкциите, които мога да доведат ускорение още няколко пъти със SSE4 (с неорязано Core 2 Duo), и после още два пъти с AVX (Core i Sandy Bridge и следващите), но имам нужда от нова работна станция, за да мога да ги използвам.

** Защото имам опит с ранното GPGPU с пикселшейдъри под Direct3D9, когато данните се пращаха и четяха само през текстури или като геометрия. Това беше още ps2.0, но тогава ограниченията бяха много досадни.

"Булдозерите" на AMD също имат интересни инструкции в SSE4a за бреоене на битове и водещи нули - малко тъпо е, че Интел ги нямат.

...
High Performance Computing 

I've become a SSE developer already, I need it to boost the performance and it started serving already! :)

GPGPU acceleration is also being hacked, to push my technology to the next performance level, and for my  movie making software. I'm also developing other technologies waiting in a queue from a long time, now getting served...

"Toshko 2" completion and release is postponed a bit due to the digression.


...
Думи: Analysis, News, Software, Text to speech Synthesis, Twenkid Research, Новини, програмиране, Софтуерно инженерство, Тошко 2, GPU, GPGPU, ГПГПУ, ГПУ, векторен процесор, ССЕ, ССЕ2, ССЕ3, СССЕ3, ССЕ4 ... SIMD, СИМД, ...

No comments :