Closed GoogleCodeExporter closed 9 years ago
synchronize.inl seems wrong
there's an
#if THRUST_DEVICE_BACKEND
guard, which is meaningless. Instead, of guarding on THRUST_DEVICE_BACKEND, we
should probably be guarding on nvcc
Original comment by jaredhoberock
on 14 Oct 2011 at 10:33
launch_closure.h is also broken:
struct thread_array : public launch_bounds<>
{
// CUDA built-in variables require nvcc
#if THRUST_DEVICE_COMPILER == THRUST_DEVICE_COMPILER_NVCC
__device__ __forceinline__ unsigned int thread_index(void) const { return threadIdx.x; }
__device__ __forceinline__ unsigned int thread_count(void) const { return blockDim.x * gridDim.x; }
#else
__device__ __forceinline__ unsigned int thread_index(void) const { return 0; }
__device__ __forceinline__ unsigned int thread_count(void) const { return 0; }
#endif // THRUST_DEVICE_COMPILER_NVCC
};
__forceinline__ is a cuda-ism. It should not appear in the 2nd branch.
Original comment by jaredhoberock
on 14 Oct 2011 at 10:39
cuda/for_each.inl uses an unguarded __forceinline__
Original comment by jaredhoberock
on 14 Oct 2011 at 10:45
This issue was closed by revision dd311eb0a077.
Original comment by wnbell
on 18 Oct 2011 at 1:27
Original issue reported on code.google.com by
jaredhoberock
on 14 Oct 2011 at 10:13