Update code object handling for GSL, PAL and ROCm

- Correct GSL path to report targets using the TargetID syntax.

- Correct GSL path to check compatibility of code objects when
  loading.

- Add concept of an device isa and create a registery used by ROCm,
  PAL and GSL.

- Support XNACK and SRAMECC target features consistently for PAL and ROCm.

- Correct logic for NullDevices and asserts to avoid memory coruption.

- Allow all NullDevices to be created for HIP.

- Numerous other code improvements.

Change-Id: I40abf3d2b22249c1492d1af5919665f8184f4e0e


[ROCm/clr commit: c7e8d91e14]
Этот коммит содержится в:
Tony Tye
2021-01-10 12:17:06 +00:00
родитель b43d61e48f
Коммит 902cf1a239
30 изменённых файлов: 1020 добавлений и 969 удалений
+1 -5
Просмотреть файл
@@ -117,7 +117,6 @@ class Program : public amd::HeapObject {
int32_t buildStatus_; //!< build status.
int32_t buildError_; //!< build error
const char* machineTarget_; //!< Machine target for this program
aclTargetInfo info_; //!< The info target for this binary.
size_t globalVariableTotalSize_;
amd::option::Options* programOptions_;
@@ -233,9 +232,6 @@ class Program : public amd::HeapObject {
const uint32_t codeObjectVer() const { return codeObjectVer_; }
#endif
//! Get the machine target for the program
const char* machineTarget() const { return machineTarget_; }
//! Check if program is HIP based
const bool isHIP() const { return (isHIP_ == 1); }
@@ -293,7 +289,7 @@ class Program : public amd::HeapObject {
void releaseClBinary();
//! return target info
virtual const aclTargetInfo& info(const char* str = "") = 0;
virtual const aclTargetInfo& info() = 0;
virtual bool setKernels(
amd::option::Options* options, void* binary, size_t binSize,