Надо ли заставлять GPU помогать CPU?

Когда в прошлом году Intel добавила в свои процессоры графическое ядро, это было воспринято с одобрительным пониманием, но, что называется, без фанфар. В конце концов, если до этого в CPU переехал контроллер памяти, так чего бы не перевести туда же остальной функционал северного моста? И стала встроенная графика жить да поживать повсеместно, от Intel Atom до мобильных Core i7. Кто хотел – использовал ее, кто не хотел – выбирал компьютер с дискретным ускорителем. В общем, ничего, по большому счету, не изменилось. А то, что GPU потихоньку помогал CPU в декодировании видео и других графических делах, так это вроде нормально, привыкли.

Между тем коллегам по бизнесу идея понравилась, и скоро в их процессорах тоже обоснуются графические ядра. Но этим не ограничится: в планах использовать последние в максимальном спектре задач, и даже официальное название чипов поменяется с CPU на APU. Инвестируются силы и средства в поддержку разработчиков, включается маркетинговый аппарат – в общем, все, как положено.

У меня нет волшебного хрустального шара, заглянув в который можно узнать о далеко идущих планах Intel. Но, если включить логику, можно предположить, что графическая составляющая из процессора исчезнет вряд ли, и, следовательно, она будет от модели к модели становиться все быстрее. Раз так – было бы логично использовать графические мощности для помощи процессору.

О том, как графические чипы «помогают» сегодня, я уже писал не раз. Скажем так, не все там гладко. Но давайте предположим, что завтра интегрированные GPU станут пусть не слишком умными в не очень типичных для них задачах, но зато очень аккуратными и шустрыми. И возникает вопрос: а не намучаемся мы с их включением в борьбу за общее дело еще больше, чем с многоядерными процессорами? Ведь само по себе ничего на компьютере не случается, и внедрение таких красивых в презентациях технологий невозможно без кропотливых усилий разработчиков ПО. Захотят ли они содействовать дружбе CPU и GPU в промышленных масштабах? Насколько эффективна будет эта дружба на самом деле? Если эффективна – как быстро можно будет переучиться на новый стиль программирования? И пойдет ли речь о неком стандартном подходе, или каждый профессионал будет искать (и находить) свой путь?

Вопросов больше, чем ответов, но это и не удивительно: CPU и GPU пока только присматриваются друг к другу, и прикидывают – какую пользу можно извлечь из отличий соседа по кристаллу. Но может быть вы уже думали об этом союзе, и можете сделать свой прогноз?