/
pccc
/
pccc-mlir
Обзор
Документация
Войти
/
pccc
/
pccc-mlir
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
offload/include/Shared/Environment.h
92 строки
3 KB
obitotsky
fork mlir
19 июл 2026, 07:05
Верифицирован
19 июл 2026, 07:05
6422b87
Код
Авторство
О чём код?
//===-- Shared/Environment.h - OpenMP GPU environments ------------ C++ -*-===// // // 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 // //===----------------------------------------------------------------------===// // // Environments shared between host and device. // //===----------------------------------------------------------------------===// #ifndef OMPTARGET_SHARED_ENVIRONMENT_H #define OMPTARGET_SHARED_ENVIRONMENT_H #include <stdint.h> struct IdentTy; enum class DeviceDebugKind : uint32_t { Assertion = 1U << 0, FunctionTracing = 1U << 1, CommonIssues = 1U << 2, PGODump = 1U << 4, }; struct DeviceEnvironmentTy { uint32_t DeviceDebugKind; uint32_t NumDevices; uint32_t DeviceNum; uint32_t DynamicMemSize; uint64_t ClockFrequency; uintptr_t IndirectCallTable; uint64_t IndirectCallTableSize; uint64_t HardwareParallelism; }; // NOTE: Please don't change the order of those members as their indices are // used in the middle end. Always add the new data member at the end. // Different from KernelEnvironmentTy below, this structure contains members // that might be modified at runtime. struct DynamicEnvironmentTy { /// Current indentation level for the function trace. Only accessed by thread /// 0. uint16_t DebugIndentionLevel; }; // NOTE: Please don't change the order of those members as their indices are // used in the middle end. Always add the new data member at the end. struct ConfigurationEnvironmentTy { uint8_t UseGenericStateMachine = 2; uint8_t MayUseNestedParallelism = 2; uint8_t ExecMode = 0; // Information about (legal) launch configurations. //{ int32_t MinThreads = -1; int32_t MaxThreads = -1; int32_t MinTeams = -1; int32_t MaxTeams = -1; int32_t ReductionDataSize = 0; //} }; // NOTE: Please don't change the order of those members as their indices are // used in the middle end. Always add the new data member at the end. struct KernelEnvironmentTy { ConfigurationEnvironmentTy Configuration; IdentTy *Ident = nullptr; DynamicEnvironmentTy *DynamicEnv = nullptr; }; /// The fallback types for the dynamic cgroup memory. enum class DynCGroupMemFallbackType : uint8_t { /// None. Used for indicating that no fallback was triggered. None = 0, /// Abort the execution. Abort = None, /// Return null pointer. Null = 1, /// Allocate from a implementation defined memory space. DefaultMem = 2 }; struct KernelLaunchEnvironmentTy { void *ReductionBuffer = nullptr; void *DynCGroupMemFbPtr = nullptr; uint32_t ReductionTeamsDone = 0; uint32_t DynCGroupMemSize = 0; DynCGroupMemFallbackType DynCGroupMemFb = DynCGroupMemFallbackType::None; }; #endif // OMPTARGET_SHARED_ENVIRONMENT_H