I think the real question here is how to invalidate the constant cache. I guess just getting the address of the symbol and (illegallly) poking the values there (e.g. with a special kernel) will work (at least pre-Fermi). Hopefully the constant cache will then be invalidated on the next kernel launch, but I have no knowledge of the internals (and not tried either).