Мне было интересно, может ли GPU вести себя как процессор, если он изменен или запрограммирован для этого. Если есть способ, я также хотел бы знать, как это можно сделать. Причина, почему, ну, иногда я делаю такие вещи, как эксперименты, просто для удовольствия. Плюс, если это не большая проблема, тогда было бы намного лучше, чем покупать дорогостоящий процессор, чтобы получить лучшую производительность. Обычно мне не нужен мой GPU, только потому, что я использую свой компьютер для простейших вещей. Мой другой компьютер, это немного другая история (потому что я использую ее для воспроизведения видео), но вы получаете эту идею.Может ли программа GPU быть запрограммирована и/или изменена для выполнения инструкций CPU?
ответ
Да, это называется GPGPU (общего назначения GPU), и с ним можно запрограммировать некоторые CPU-подобные нагрузки на вашем GPU с использованием языков, как CUDA или OpenCL.
Конечно, этот метод не работает с какой-либо рабочей нагрузкой, процессор все еще намного лучше работает в однопоточных труднопараллельных кодах или кодах со сложным потоком управления (из-за отраслевых предсказателей) или локали памяти (из-за лучшего кэширования и предварительной выборки). GPGPU в основном лучше для выполнения очень прямолинейного сильно параллельного векторизованного кода.
В самом деле, этот метод расчета поймал достаточно тяги, чтобы создать новые линии продуктов, (например, Xeon Phi, formely Larrabee) и расширение существующих графических процессоров (например, Tesla/Fermi и другие)
EDIT
Перечитав свой вопрос: если вы имеете в виду запуск реального CPU ISA на таком GPGPU, а не только какую-то общую задачу ЦП, то лучшим вариантом является Xeon Phi, упомянутый выше, он должен основываться на том же ISA, что и на CPU (это единственный x86 GPGPU, о котором я знаю).
А, да. Но я боюсь, что у меня сейчас нет GPU GPU общего назначения. Не было бы смысла покупать его, просто чтобы я мог его запрограммировать. Но это отвечает на мой вопрос, поэтому спасибо! –
@spicedawgx, проверьте, поддерживает ли он один из двух языков выше – Leeor
Графические процессоры слабы со сложным потоком управления не столько из-за слабого предсказания ветвления, сколько для ориентации SIMD. Хотя графические процессоры позволяют увеличить расхождение «потоков» (сравнимо с каналом данных SIMD), чем чистый SIMD (даже с предикацией), расхождение более ограничено, чем на процессорах и снижает производительность.Графические процессоры также имеют пропускную способность, а не латентность для кэшей и контроллеров памяти (хотя интегрированные чипы CPU-GPU, похоже, используют контроллеры памяти с процессором), поэтому, если латентность не скрыта параллелизмом, то такие вещи, как перемещение связанного списка, еще медленнее. –
- 1. GPU читает от CPU или CPU записывает на GPU?
- 2. Новые наборы инструкций в CPU
- 3. Передача команд между CPU и GPU
- 4. Может ли динамическая динамика создания списка ListView быть запрограммирована программно
- 5. CPU SIMD vs GPU SIMD?
- 6. CPU обгоняет GPU
- 7. GPU + CPU Tensorflow Обучение
- 8. Может ли шкала WebRTC на основе производительности CPU/GPU
- 9. переменная не может быть изменена
- 10. CUDA GPU медленнее, чем CPU
- 11. Кто знает, с чем запрограммирована программа Picasa?
- 12. переменная, которая не может быть изменена
- 13. может быть изменена развернутая война/приложение?
- 14. CUDA же функция для CPU и GPU
- 15. Поделитесь переменной между CPU и GPU-CUDA
- 16. wglGetCurrentContext синхронизирует GPU и CPU?
- 17. WebGL CPU против GPU для преобразований
- 18. Как вычислить общее время для CPU + GPU
- 19. Может ли многопоточная функциональная программа быть детерминированной?
- 20. GPU сортировки против CPU сортировочного
- 21. Может ли GPU использоваться для общего программирования?
- 22. Пользовательская ширина tabIndicator TabLayout может быть изменена?
- 23. Есть ли тесты для CUDA-GPU или для MPI-CPU + CUDA-GPU?
- 24. Устройство OpenCL CPU против устройства GPU
- 25. Как определяется высота GridView и может ли быть изменена?
- 26. Может ли Android renderscript работать на GPU?
- 27. Сохраненная ранее запись не может быть изменена
- 28. Может ли точка выполнения приложения Java быть изменена или указана при отладке в Android Studio
- 29. Может ли функция закрытия javascript быть изменена пользователем?
- 30. Есть ли часть файла Windows, которая не может быть изменена?
GPU's Turing Complete. Поэтому это возможно. Совсем другое дело. Я сомневаюсь, что это иначе, чем как интеллектуальное упражнение; Графические процессоры оптимизированы, чтобы делать разные вещи, чем процессоры. См. Также http://superuser.com/questions/308771/why-are-we-still-using-cpus-instead-of-gpus –
Да, вы, безусловно, правы, что это было бы нелогично. Однако, как я уже сказал, было бы интересно посмотреть результат как на эксперимент, по крайней мере, в моей собственной перспективе. –
Я с нетерпением жду результатов ваших усилий. –