Clang может переводить CUDA (не полный) или OpenCL на llvm. Как он может сохранить «общее» ключевое слово, чтобы он знал разницу между общей и глобальной памятью?Компиляция CUDA или OpenCL до llvm IR
ответ
Я не знаком с CUDA или OpenCL, но могу посоветовать вам посмотреть на полученный LLVM IR, который генерируется интерфейсом и посмотреть, какой код генерируется. Также вы можете посмотреть соответствующий LLVM-сервер, чтобы узнать, как он использует общую/глобальную память.
Из сгенерированного llvm IR я не вижу никакой разницы в использовании __global и __local. – dalibocai
Похоже, что решение принимается в бэкэнд. Возможно, вы можете найти дополнительную информацию по адресу http://llvm.org/devmtg/2011-11/. Есть несколько презентаций о LLVM OpenCL. –
Было бы странно, что программисту необходимо явно управлять локальной памятью, но на самом деле он управляется бэкэндом. В любом случае, спасибо за ссылку. – dalibocai
- 1. как скомпилировать CUDA для llvm IR?
- 2. LLVM-IR GEP для доступа к локальному массиву OpenCL
- 3. Отладка LLVM IR
- 4. Способ создания LLVM IR
- 5. LLVM IR вставки
- 6. Понимание простейшей LLVM IR
- 7. вставки инструкции LLVM IR
- 8. Как разобрать LLVM IR
- 9. LLVM IR печать номер
- 10. C++ для LLVM IR
- 11. LLVM IR Lambda Functions
- 12. Как GCC IR отличается от LLVM IR?
- 13. LLVM IR getelementptr LLVM C API эквивалент
- 14. OpenCL или CUDA Какой путь?
- 15. Оптимизация LLVM IR вложенных функций
- 16. Разберите двоичный код SPIR для LLVM IR
- 17. LLVM-IR назначение указатель массива
- 18. Сгенерировать LLVM IR для httpd
- 19. Приращение ptr в llvm ir
- 20. ошибка сегментации в llvm ir
- 21. Найти llvm.pow.f64 в llvm IR
- 22. Инструкции Phi на LLVM IR
- 23. ошибка сегментации с llvm-ir
- 24. Замена инструкций в LLVM IR
- 25. Приращение переменной в LLVM IR
- 26. LLVM IR getelementptr недопустимые индексы
- 27. Firemonkey CUDA/OpenCL
- 28. Редкий массив в CUDA или OpenCL
- 29. Какой код в LLVM IR работает до «main()»?
- 30. Поиск DILocation для GlobalValue в LLVM IR?
Привет, Я потратил три дня на то, чтобы скомпилировать ядро CUDA в llvm IR, и я не мог этого сделать. Я попытался изменить langoptions.cpp и добавил CUDA = 1; там, но все же clang дает мне сообщения об ошибках для синтаксиса cuda (например, вызов _synchthreads()). любая помощь/примечание/советы о том, как вы это сделали, очень помогут. благодарит заранее. –