| 1198 | } |
| 1199 | |
| 1200 | hipError_t hipLaunchKernelExC(const hipLaunchConfig_t* config, const void* fPtr, void** args) { |
| 1201 | HIP_INIT_API(hipLaunchKernelExC, config, fPtr, args); |
| 1202 | if (fPtr == nullptr) { |
| 1203 | HIP_RETURN(hipErrorInvalidDeviceFunction); |
| 1204 | } |
| 1205 | |
| 1206 | if (config == nullptr) { |
| 1207 | HIP_RETURN(hipErrorInvalidConfiguration); |
| 1208 | } |
| 1209 | |
| 1210 | if (config->numAttrs == 0) { |
| 1211 | HIP_RETURN_DURATION(hipLaunchKernel_common(fPtr, config->gridDim, config->blockDim, args, |
| 1212 | config->dynamicSmemBytes, config->stream)); |
| 1213 | } |
| 1214 | |
| 1215 | for (size_t attr_idx = 0; attr_idx < config->numAttrs; ++attr_idx) { |
| 1216 | hipLaunchAttribute& attr = config->attrs[attr_idx]; |
| 1217 | switch (attr.id) { |
| 1218 | case hipLaunchAttributeCooperative: |
| 1219 | if (attr.val.cooperative != 0) { |
| 1220 | HIP_RETURN_DURATION( |
| 1221 | hipLaunchCooperativeKernel_common(fPtr, config->gridDim, config->blockDim, args, |
| 1222 | config->dynamicSmemBytes, config->stream)); |
| 1223 | } |
| 1224 | break; |
| 1225 | default: |
| 1226 | LogPrintfError("Attribute %u not supported", attr.id); |
| 1227 | break; |
| 1228 | } |
| 1229 | } |
| 1230 | HIP_RETURN(hipErrorInvalidConfiguration); |
| 1231 | } |
| 1232 | |
| 1233 | hipError_t hipDrvLaunchKernelEx(const HIP_LAUNCH_CONFIG* config, hipFunction_t f, |
| 1234 | void** kernelParams, void** extra) { |
nothing calls this directly
no test coverage detected