PTX indirect branching question Does "indirect branch is currently unimplemented" mean it wo

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 would greatly appreciate any insights.

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 would greatly appreciate any insights.

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.

Thanks for the reply! I’ll keep this in mind.

Thanks for the reply! I’ll keep this in mind.

Does anyone know if in the Cuda 5.5 docs support the indirect branch yet? This has been in the documentation since version 1.2.

The CUDA 5.5 PTX ISA 3.2 docs still say that it’s unimplemented.

About every six months I say to myself, “Self, it would be really great if there was an indirect branch instruction in PTX.”

Then I check the docs and it’s still unimplemented. :)

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.

Thanks for checking. I guess I will have to wait until cuda 6.0 to check again. :\

btw, I was registered but for some reason I had to re-register. I re-registered on Friday and am waiting to be approved.

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.