<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/143323>143323</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Offload] Kernel launch fails with "too many resources" when parameter type is changed from `size_t` to `int`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
leandrolcampos
</td>
</tr>
</table>
<pre>
I observed something weird. When I try to launch the following kernel
```cpp
#include <gpuintrin.h>
#include <math.h>
#include <stdlib.h>
extern "C" __gpu_kernel void applyLogf(const float *In, float *Out,
size_t NumElements) {
int Index = __gpu_num_threads(__GPU_X_DIM) * __gpu_block_id(__GPU_X_DIM) +
__gpu_thread_id(__GPU_X_DIM);
if (Index < NumElements) {
Out[Index] = logf(In[Index]);
}
}
```
with these arguments
```cpp
// ...
struct {
void *InBuffer;
void *OutBuffer;
size_t NumElements;
} Args{InBuffer, OutBuffer, NumElements};
OL_CHECK(olLaunchKernel(nullptr, GPUDevice.Handle, Kernel, &Args,
sizeof(Args), &LaunchArgs, nullptr));
// ...
```
everything works fine. But if I try to change the type of `NumElements` to `int`, here
```cpp
#include <gpuintrin.h>
#include <math.h>
extern "C" __gpu_kernel void applyLogf(const float *In, float *Out,
int NumElements) {
int Index = __gpu_num_threads(__GPU_X_DIM) * __gpu_block_id(__GPU_X_DIM) +
__gpu_thread_id(__GPU_X_DIM);
if (Index < NumElements) {
Out[Index] = logf(In[Index]);
}
}
```
and here
```cpp
// ...
struct {
void *InBuffer;
void *OutBuffer;
int NumElements;
} Args{InBuffer, OutBuffer, static_cast<int>(NumElements)};
OL_CHECK(olLaunchKernel(nullptr, GPUDevice.Handle, Kernel, &Args,
sizeof(Args), &LaunchArgs, nullptr));
// ...
```
I get the following error:
```bash
OL_CHECK FAILED: (olLaunchKernel(nullptr, GPUDevice.Handle, Kernel, &Args, sizeof(Args), &LaunchArgs, nullptr)) != OL_SUCCESS
Error Code: 1
Details: error in cuLaunchKernel for 'applyLogf': too many resources requested for launch
Location: /home/leandro/offload-samples/samples/math_test/Tester.hpp:151
Function: check
```
**Environment:**
* LLVM version: Custom build from git
* LLVM Project Commit Hash: `1e4841881ef89aeee77cbf081de42af376bfa3fb`
* Operating System: Ubuntu 24.04.2 LTS (WSL2)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzcVl9v2zYQ_zT0y6GCdLIt-cEPjmy3Rt2lQJp1bwIlnSwuFKmRlNPs0w-UlL9Nh21IXyYIicU73r_f78jj1oqTIlqzxQVbbGe8d402a0lcVUbLkredtrNCV3frA-jCkjlTBVa35BqhTnBLwlQBfG1IwQGcuQOnQfJelQ24hqDWUupbr3lDRpFk4ca_y3B8y67znxgLVcq-ImBxdup6oZwRKmhYvPtO3HLXvC6xrpKieJCFG_rmyChgiBlDhDw_dX0-xgFnLSrgXSfvjvpUM0xLrayDWmrugOHmoBhmj5-XvWOYsXADVvxJuYNf-nYnqSXlLMMVsOTCC0EoBwdV0Tdg8XbyqPo2d40hXlmGaZ6__3yd_5ZvD5-GjbiZ1Aqpy5tcVK_pDMZHtdHSa3osvhjzBhA1MEzvA8l-FC2Az2txMSiyxXYIWo71OKgnggfrACzZei_j33scR7-3wg2oWwJuTv3o7jXAvWeGe4Z7CIJgWrDO9KV7EhuMIA1gXPR1TeY-hqeyy949E76Cz8MulmxhY06WJRcPJjGDRxP4vFTJ9rGml8c8-7DLPjJMtTwODP84UhpT1UvZuWH7-8_XWzqLkoIPXFWS_Nq9XgYMl4P_RyppX-txbTVpjMYnPXiwvXoCwovyvcCBzmTupv7U5sZCLRQFcNE7T4yHNi0brk40tKm76wh0DWwZPs1_GXo9tgyFct46ZgANGXrjLv5JnfrPHt-x_4dmftNO5qr6MdA_s3tfheRf9a913IkyL7l1LM48ceMdw_R50Z51tj8G3765_-b5WX1_gBO5F9cuGaMNizcvkCy4bVi4uc8b9pvDcbdl8QbeqAT_IUlgGHnaXh7zq-ss211dDTnvfAaQ6Yp8eNGwtiXHhbR-YUgQhIKyfxo11NoAw-TJwZF4dac1tFzdgSGre1OSBUN_9GQdVcOecXgZvBx1yZ3QaizLvtEtMdxPsxHDva79qVO9s7ztJFmG-8df_oDLHVnHcP_FWzdB03Us3kSLMYV9r8p742VD5c33eDL0706dhdHKU9fjOKyNQjgef_0EZzJ2spP11ukWil7ICmqjWzgJ90CcSf-z0b9T6SDTbSscfPBM8Akuw4jm6TxK04jqdMWJKEnKog7TqKI58jpOlkXN47qYAsQNXHZkuPM8u7qzjlpv6LrolesB50E4DxCOX648p75eHZHhalat42oVr_iM1lEyX82jeZTEs2ZdJcQR0yKJI15WqzCOSh4lc8RFRNWS4plYY4iLcBmmGCIu4qAOF9WCiiqtihiX1ZLNQ2q5kIGU5zbQ5jQT1va0juZxjPFM8oKkHeZcREW3MEgZoh97zdpvelf0J8vmoRTW2UczTjg5DMiXI97-eJ1INk26tScjDOMPQ_yeYv5Ou_UjcscNb8mRGW9cYadLeEKLLcNxfHl58856I9eNc50dKOCPgJNwTV8EpW49J-X5_t-7bsSX4X7I0JNxKsF5jX8FAAD__yY6kFw">