Последние новости

Наука и технологии

Hardware

CUDA - куда держим направление?

23.04.2014


CUDA (Compute Unified Device Architecture) – новая архитектура от компании NVIDIA позволяет осуществлять вычисления при использовании графических процессоров, которые поддерживают технологию GPGPU. С помощью CUDA SDK программисты могут реализовывать алгоритмы для графических NVIDIA-процессорах, включать некоторые специальные функции в программу. CUDA позволяет разработчику по собственному усмотрению осуществлять доступ к инструкциям графического ускорителя, организовывать довольно сложные вычисления.

Программная архитектура

В основе CUDA API был взят язык Си с разными ограничениями. В CUDA SDK входит Си-компилятор nvcc компании Nvidia. Этот компилятор создавался на основе компилятора Open64. Он является транслятором host-кода (главный, управляющий код) и device-кодa (аппаратный код) в объектные файлы, являющимися пригодными при сборке конечной программы. CUDA использует grid-память, потоки и SIMD-инструкции. Применяется в основном в высокопроизводительных графических вычислениях и в разработках графического API. В нее также включена способность подключения к различным приложениям, которые используют Microsoft Direct3D и OpenGL. Создавался в версиях Windows, Mac OS X, Linux. 

В феврале 2010 годa вышла в продажу версия Toolkit 3.0 компании nVidia. Она содержала поддержку OpenCL.

Оборудование

Первые серии оборудования, поддерживающие G8x и CUDA SDK, имели 32-битовый процессор одинарной точности, который использует CUDA SDK в качестве API. Поздние процессоры GT200 обладают поддержкой 64-битной точности, однако производительность гораздо ниже 32-битной (т.к. SFU всего 2 для каждого потокового мультипроцессора). Открываются большие возможности для графического оборудования при выполнении довольно сложных вычислений.

Преимущества

Сравнивая традиционный подход к осуществлению вычислений более общего назначения с использованием графических API с архитектурой CUDA, у CUDA выделяют следующие преимущества: во-первых, связующее звено программирования приложений CUDA основывается на Си. Производители считают, это упростит и сгладит архитектуру CUDA. Во-вторых, потоковая разделяемая память (shared) может использоваться под кэш, который организован пользователем, имеет широкую полосу пропускания. В-третьих, архитектура CUDA предоставляет полную аппаратную поддержку побитовых и целочисленных операций. В-четвертых, CUDA позволяет эффективно переводить между видеопамятью и памятью центрального процессора.

NVIDIA CUDA™ - среда исследований, позволяющая производителям изготавливать программное обеспечение решения достаточно сложных и требовательных к ресурсам вычислительных задач за короткий промежуток времени. Это выполнимо благодаря мощной вычислительной силе процессоров.


26 апреля, пятница