CUB CachingDeviceAllocator 内部在 cache miss 时调 cudaMalloc, 被我们的 LD_PRELOAD 再次拦截 → DeviceAllocate → cudaMalloc → 无限递归 → segfault。 加 thread_local bool inside_cub 标志: 外部调用 → CUB allocator (带缓存) CUB 内部调用 → 直接走 dlsym(RTLD_NEXT) 的真实 cudaMalloc
CUB CachingDeviceAllocator 内部在 cache miss 时调 cudaMalloc, 被我们的 LD_PRELOAD 再次拦截 → DeviceAllocate → cudaMalloc → 无限递归 → segfault。 加 thread_local bool inside_cub 标志: 外部调用 → CUB allocator (带缓存) CUB 内部调用 → 直接走 dlsym(RTLD_NEXT) 的真实 cudaMalloc