When CUDA 3.1 will be supported ?
I think PGI 2010 version 10.6 supports only CUDA 3.0
The next question is when will kernels support subroutine/function calls within?
(CUDA 3.1 allows the implementation of calls stack)
thank you
When CUDA 3.1 will be supported ?
I think PGI 2010 version 10.6 supports only CUDA 3.0
The next question is when will kernels support subroutine/function calls within?
(CUDA 3.1 allows the implementation of calls stack)
thank you
Hi FRANCOIS-C,
CUDA 3.1 will be included with August’s 10.8 compilers.
The next question is when will kernels support subroutine/function calls within? (CUDA 3.1 allows the implementation of calls stack)
Please clarify. Do you mean within a PGI Accelerator region or CUDA Fortran? Also, what types of routine do you wish to call (any routine? CUDA C library?).
Thanks Mat.
My questions applies for both a PGI Accelerator region and CUDA Fortran.
I was refering to user routines/functions.
-Francois
Hi Francois,
I personally don’t know much about what NVIDIA means by a ‘call stack’. What little I could gather was it’s there to support C++ and that CUDA C still doesn’t support true function calling. CUDA C and CUDA Fortran syntactical allow for routine calls, but in actuality all calls are inlined. Hence, calls to device routines must be within the same file/module scope. I could be wrong, but I don’t think this has changed with CUDA 3.1.
A second issue with calling is the lack of a linker for device code. Without a linker there’s no way to associate symbols. Without a way to associate symbols, there’s no way of knowing the address of the routine you want to jump to.
This is a problem that we are well aware of and actively seeking solutions. While I hope these limitations can be removed (or at least less limiting) in the future, there are no current plans to allow for calling to be supported unless the callee routine can be inlined.