Files
clang-p2996/flang/runtime/CUDA/init.cpp
Valentin Clement (バレンタイン クレメン) 654b76321a [flang][cuda] Allow to set the stack limit size (#124859)
This patch adds a call to the CUFInit function just after `ProgramStart`
when CUDA Fortran is enabled to initialize the CUDA context. This allows
us to set up some context information like the stack limit that can be
defined by an environment variable `ACC_OFFLOAD_STACKSIZE=<value>`.
2025-01-28 20:57:33 -08:00

26 lines
844 B
C++

//===-- runtime/CUDA/init.cpp ---------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#include "flang/Runtime/CUDA/init.h"
#include "../environment.h"
#include "../terminator.h"
#include "flang/Runtime/CUDA/common.h"
#include "cuda_runtime.h"
extern "C" {
void RTDEF(CUFInit)() {
// Perform ctx initialization based on execution environment if necessary.
if (Fortran::runtime::executionEnvironment.cudaStackLimit) {
CUDA_REPORT_IF_ERROR(cudaDeviceSetLimit(cudaLimitStackSize,
Fortran::runtime::executionEnvironment.cudaStackLimit));
}
}
}