Да возможно - например виртуализация! Пилите на шейдерных процессорах виртуальную машину, а уже на ней, размещая оперативную память и регистры в gpu ram, запускаете что угодно.
Но это не имеет никакого смысла потому что не даст высокой производительности в общем случае. Шейдерный процессор имеет небольшую скорость (вся фича в их количестве) и обладает кучей ограничений. А еще - размер кода, который можно загрузить в видеокарту как код шейдеров - ограничен очень небольшим размером (не смог найти данные про современное железо но лимит очень небольшой, считанные десятки тысяч опкодов или мегабайты) при превышении которого код подгружается из системной памяти - сильно медленно. В gpgpu вообще много специфических ограничений, при превышении которых скорость падает на порядки, и с каждым производителем gpu свои особенности.
И 'нет' - код не может быть запущен только на gpu, нужен контроль со стороны центрального процессора, для взаимодействия и управления.