Hmm… maybe I get it.
The reason you don’t want to tell us how it works under the hood is because you’ll have to listen to people complain if you ever change it up.
Or I think another way to say it is that you’ll hinder your artistic freedom if it will be weighed by “well, we could completely change that part and make it way cooler, but then what are we going to do about cuda compatibility and performance…”
I don’t know. I think revealing architectural details and letting developers optimize for them (either indirectly through cu or directly through cubin assembly) would be ok as long as you put up big warnings and make a nice versioning system like you implement in the devcode repository. Remember, you could use the marketing wins like “G80 achieves XXX gflops” or “carefully optimized code is finally appearing for g80.” For the ISVs, too, you give a new purpose for existence in delivering yearly performance updates in step with your hardware.