2012-04-26 1 views
0

В учебнике Cg говорится, что Cg использует динамическую компиляцию. Я заметил, что это компилятор имеет некоторые сходства с интерпретатором, поскольку им не нужно компилировать весь код в первом проходе, и если ошибка существует, вы найдете ее при запуске exe.В чем разница между динамической компиляцией, используемой в Cg и интерпретаторе, используемой в некоторых сценариях?

Однако какая разница между ними. Может ли кто-нибудь дать мне некоторые подробности? Большое спасибо.

ответ

0

В этом случае код Cg скомпилируется во время выполнения. Это похоже на интерпретатор, который компилируется до промежуточной формы (например, p-код и т. Д.). Основная причина этого в GPU заключается в том, что в результате скомпилированного результата могут быть небольшие различия в зависимости от конфигурации компьютера во время выполнения. Cg компилирует (обычно) на ассемблер OpenGL (например, 'fp40' или 'arbfp' для программ фрагмента).

Это правда, что этот скомпилированный код ассемблера еще больше скомпилирован в микрокод драйвером GPU, но этот процесс полностью скрыт от программистов (если они не работают в NVIDIA и т. Д.).

Смежные вопросы