<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">