Page 40 - 6571
P. 40

lements).  Один  потік  виконується  на  кожному  елементарному
                  процесорі. В прикладі додавання векторів SIMD пристрій з ши-
                  риною в чотири PE може виконати чотири ітерації циклу за один
                  раз.



                        5.2 Використання технології GPGPU


                        Технологія GPGPU (General-Purpose Graphics Processing Uni
                  s)  –  техніка  використання  графічного  процесора  відеокарти  для

                  виконання  обчислень,  які  зазвичай  виконуються  центральним
                  процесором.
                        В даній технологій для організації паралельних обчислень в
                  ролі  програмних  засобів  в  основному  використовують  програм-

                  но-апаратну архітектуру CUDA, фреймворк OpenCL та інтерфейс
                  програмування програмних додатків DirectCompute.
                        1. CUDA (Compute Unified Device Architecture) – програмно-

                  апаратна архітектура, що дозволяє проводити обчислення з вико-
                  ристанням  графічних  процесорів  NVIDIA,  які  підтримують  тех-
                  нологію GPGPU. CUDA базується на концепції, в якій GPU (но-
                  сить назву device) виступає в ролі масивно-паралельного сопро-

                  цесора до CPU (носить назву host). Програми написані за допомо-
                  гою CUDA виконуються якна CPU та і на GPU. При цьому зви-
                  чайний  послідовний  код  виконується  на  CPU,  а  для  виконання

                  масивно-паралельних обчислень використовується GPU. Відпові-
                  дний  код  виконується  на  GPU  як  набір  одночасно  виконуваних
                  потоків.

                        2. OpenCL  (Open  Computing  Language)  –  фреймворк  для  на-
                  писання  комп’ютерних  програм,  що  пов’язані  із  паралельними
                  обчисленнями на різноманітних графічних та центральних проце-

                  сорах. В фреймворк OpenCL входять мова програмування, яка ба-
                  зується  на  стандарті  С99,  та  інтерфейс  програмування  програм-
                  них  додатків  (API).  OpenCL  забезпечує  паралелізм  на  рівні  ін-
                  струкцій і на рівні даних. OpenCL розробляється та підтримуєть-

                  ся некомерційним консорціумом Khronos Group.
                        3. DirectCompute – інтерфейс програмування програмних до-
                  датків (API), який входить в склад DirectX – набору API від Micr-

                  osoft,  що  призначений  для  роботи  на  IBM  PC-сумісних
                  комп’ютерах  під  управлінням  операційних  систем  сімейства



                                                              39
   35   36   37   38   39   40   41   42   43   44   45