Is the PTX assembler redistributable

Is the PTX assembler redistributable?

If not, what mechanism can I use to generate low-level code at runtime and then execute that code?

You can (and as of the last version of CUDA, should be, AFAIK) using the PTX JIT’ing methods to just let the API take care of it for you. Thus, you don’t need to distribute the low-level binaries any longer (if you don’t want to), since you can just store the PTX however you want (compiled into your main binary, a text file along with your program, a web service, etc.) and then run it through the JIT compiler when it is launched.

There are also some new JIT methods that will be available in CUDA 2.3, see the release notes:
http://forums.nvidia.com/index.php?showtopic=99797