Yes, you can compile a ptx source file into a cubin file, and yes I’m sure its possible to handcode a ptx, but I am just as sure it is much easier to just write the code in C or C++.
With ATI if your goal is performance then you have to take IL path.
With NVIDIA C and PTX are much closer in terms of performance and programming model for “C for CUDA” is not so restrictive as in Brook+. So I’d suggest you to write in C, not in PTX (but if you ask me same question about Brook+/IL I’d suggest to use IL).