I am working a lot in the PTX low-level virtual machine language, and I would like to use indirect branching in an application I am putting together. However, a note on page 141 of the PTX 3.0 manual states: “Note: indirect branch is currently unimplemented.”
Can anyone tell me what this means? Does that mean that it works, but nvcc does not use it? In other words, if I am writing code directly in PTX, can I expect this instruction to work as advertised?
I am working a lot in the PTX low-level virtual machine language, and I would like to use indirect branching in an application I am putting together. However, a note on page 141 of the PTX 3.0 manual states: “Note: indirect branch is currently unimplemented.”
Can anyone tell me what this means? Does that mean that it works, but nvcc does not use it? In other words, if I am writing code directly in PTX, can I expect this instruction to work as advertised?
I am pretty sure this is accurate information. It is unimplemented, meaning one cannot use it. I recall that as an exercise to get hands-on experience with inline PTX I tried to implement Duff’s Device, for which use of an indirect branch is the most natural solution, only to find that it is not implemented. The PTX specification is really independent of NVCC usage. There are likely a number of PTX instructions/features that NVCC generated code does not exercise. This is not uncommon for compilers on any platform.
I am pretty sure this is accurate information. It is unimplemented, meaning one cannot use it. I recall that as an exercise to get hands-on experience with inline PTX I tried to implement Duff’s Device, for which use of an indirect branch is the most natural solution, only to find that it is not implemented. The PTX specification is really independent of NVCC usage. There are likely a number of PTX instructions/features that NVCC generated code does not exercise. This is not uncommon for compilers on any platform.
I believe an up-to-date PTX specification shipped with the CUDA 5.5 release candidate, although I haven’t checked that this is the case. Have you had a chance to take a look at that? CUDA 5.5 RC is available for registered devdelopers at this time. If you are not a registered developer yet, it is straightforward to sign up, approval typically occurs within one business day.
Business days are Monday through Friday, relative to time zones in the western United States. Let me know via PM if you experience undue delay in the approval process.
Some time ago there was a change in the registered developer website and related online offerings that required re-registration under a new system. I am a registered developer myself (so I can see exactly what other registered developer see) and seem to recall that this change occured more that a year ago. Sorry for the inconvenience, apparently it was not possible to import accounts from the old system into the new system.