CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
95 lines
2.9 KiB
C
95 lines
2.9 KiB
C
//===-- 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;
|
|
int32_t ReductionBufferLength = 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 ReductionCnt = 0;
|
|
uint32_t ReductionIterCnt = 0;
|
|
uint32_t DynCGroupMemSize = 0;
|
|
DynCGroupMemFallbackType DynCGroupMemFb = DynCGroupMemFallbackType::None;
|
|
};
|
|
|
|
#endif // OMPTARGET_SHARED_ENVIRONMENT_H
|