diff --git a/llvm/include/llvm/OffloadArch/OffloadArch.h b/llvm/include/llvm/OffloadArch/OffloadArch.h deleted file mode 100644 index e335a70cc83068..00000000000000 --- a/llvm/include/llvm/OffloadArch/OffloadArch.h +++ /dev/null @@ -1,76 +0,0 @@ -//===-------------- offload-arch/OffloadArch.h ----------*- C++ header -*-===// -// -// 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 -// -//===---------------------------------------------------------------------===// - -#ifndef __LLVM_OFFLOAD_OFFLOADARCH_H__ -#define __LLVM_OFFLOAD_OFFLOADARCH_H__ - -#include "llvm/ADT/StringRef.h" -#include -#include -#include - -#define MAXPATHSIZE 512 - -// These search phrases in /sys/bus/pci/devices/*/uevent are found even if -// the device driver is not running. -#define AMDGPU_SEARCH_PHRASE "DRIVER=amdgpu" -#define AMDGPU_PCIID_PHRASE "PCI_ID=1002:" -#define NVIDIA_SEARCH_PHRASE "DRIVER=nvidia" -#define NVIDIA_PCIID_PHRASE "PCI_ID=10DE:" - -/// Get the vendor specified software capabilities of the current runtime -/// The input vendor id selects the vendor function to call. -std::string -getVendorCapabilities(const std::pair &offloadarch); - -/// Get the AMD specific software capabilities of the current runtime -std::string getAMDGPUCapabilities(uint16_t vid, uint16_t devid, - const std::string &oa); -std::string getAMDGPUCapabilitiesForOffloadarch(const std::string &uuid); - -/// Get the Nvidia specific software capabilities of the current runtime -std::string getNVPTXCapabilities(uint16_t vid, uint16_t devid, - const std::string &oa); - -/// return requirements for each offload image in an application binary -std::vector getOffloadArchFromBinary(const std::string &fn); - -/// return all offloadable pci-ids found in the system -std::vector> -getAllPCIIds(bool hsa_detection); -/// return all offloadable pci-ids for a given vendor -std::vector> -getPCIIds(const char *driver_search_phrase, const char *pci_id_search_phrase); - -/// return vendor specific offloadable GPUs found in the system Detection -/// without using PCIIds -bool IsAmdDeviceAvailable(); -void BindHsaMethodsAndInitHSA(); -std::vector> -getAmdGpuDevices(const char *driver_search_phrase, - const char *pci_id_search_phrase, bool hsa_detection); -std::vector> runHsaDetection(); - -/// lookup function to return all pci-ids for an input codename -std::vector lookupCodename(const std::string &lookup_codename); - -/// lookup function to return all pci-ids for an input offload_arch -std::vector lookupOffloadArch(std::string lookup_offload_arch); - -/// get the offload arch for VendorId-DeviceId -std::string getOffloadArch(uint16_t VendorID, uint16_t DeviceID); - -/// get the vendor specified offloadarch -std::string getCodename(std::string offloadArch); - -/// get the compilation triple for offloadarch -std::string getTriple(const std::string &offloadarch); - -/// Utility to return contents of a file as a string -std::string getFileContents(const std::string &fname); -#endif diff --git a/llvm/lib/CMakeLists.txt b/llvm/lib/CMakeLists.txt index 5439f7ab3bac8f..638c3bd6f90f53 100644 --- a/llvm/lib/CMakeLists.txt +++ b/llvm/lib/CMakeLists.txt @@ -27,7 +27,6 @@ add_subdirectory(MCA) add_subdirectory(ObjCopy) add_subdirectory(Object) add_subdirectory(ObjectYAML) -add_subdirectory(OffloadArch) add_subdirectory(Option) add_subdirectory(Remarks) add_subdirectory(Debuginfod) diff --git a/llvm/lib/OffloadArch/CMakeLists.txt b/llvm/lib/OffloadArch/CMakeLists.txt deleted file mode 100644 index e30d31ca15b589..00000000000000 --- a/llvm/lib/OffloadArch/CMakeLists.txt +++ /dev/null @@ -1,38 +0,0 @@ -add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/generated_offload_arch.h - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/make_generated_offload_arch_h.sh ${CMAKE_CURRENT_SOURCE_DIR} - DEPENDS - ${CMAKE_CURRENT_SOURCE_DIR}/make_generated_offload_arch_h.sh - ${CMAKE_CURRENT_SOURCE_DIR}/amdgpu/pciid2codename.txt - ${CMAKE_CURRENT_SOURCE_DIR}/amdgpu/codename2offloadarch.txt - ${CMAKE_CURRENT_SOURCE_DIR}/nvidia/pciid2codename.txt - ${CMAKE_CURRENT_SOURCE_DIR}/nvidia/codename2offloadarch.txt -) - -add_custom_target( - generated-table - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/generated_offload_arch.h) - -add_llvm_component_library(LLVMOffloadArch - OffloadArch.cpp - amdgpu/vendor_specific_capabilities.cpp - nvidia/vendor_specific_capabilities.cpp - ADDITIONAL_HEADER_DIRS - "${LLVM_MAIN_INCLUDE_DIR}/llvm/OffloadArch" - ${CMAKE_CURRENT_BINARY_DIR} - DEPENDS - generated-table - LINK_COMPONENTS - BinaryFormat - Core - Object - ProfileData - Support - InterfaceStub -) - -if(NOT WIN32 AND NOT CYGWIN) - target_link_libraries(LLVMOffloadArch PRIVATE dl) -endif() - -add_subdirectory(offload-arch) diff --git a/llvm/lib/OffloadArch/OffloadArch.cpp b/llvm/lib/OffloadArch/OffloadArch.cpp deleted file mode 100644 index e5a2cfda9df028..00000000000000 --- a/llvm/lib/OffloadArch/OffloadArch.cpp +++ /dev/null @@ -1,287 +0,0 @@ -//===------------------- offload-arch/OffloadArch.cpp ----------*- 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 -// -//===---------------------------------------------------------------------===// -/// -/// \file -/// Implementation of offload-arch tool and alias commands -/// "amdgpu-offload-arch" and "nvidia-arch". The alias commands are symbolic -/// links to offload-arch. -/// offload-arch prints the offload-arch for the current system or -/// looks up numeric pci ids and codenames for a given offload-arch. -/// -//===---------------------------------------------------------------------===// - -#include "llvm/OffloadArch/OffloadArch.h" -#include "generated_offload_arch.h" -#include "llvm/Object/ELFObjectFile.h" -#include "llvm/Support/WithColor.h" -#ifndef _WIN32 -#include -#endif -#include - -using namespace llvm; -using namespace object; - -std::string getFileContents(const std::string &fname) { - std::string file_contents; - std::string line; - std::ifstream myfile(fname); - if (myfile.is_open()) { - while (getline(myfile, line)) { - file_contents.append(line).append("\n"); - } - myfile.close(); - } - return file_contents; -} - -std::vector> -getAmdGpuDevices(const char *driver_search_phrase, - const char *pci_id_search_phrase, bool hsa_detection) { - std::vector> offloadArchs; - - if (!hsa_detection) { - offloadArchs = getPCIIds(driver_search_phrase, pci_id_search_phrase); - } - - if (offloadArchs.empty()) { - if (IsAmdDeviceAvailable()) { - BindHsaMethodsAndInitHSA(); - } - offloadArchs = runHsaDetection(); - } - - return offloadArchs; -} - -std::vector> -getPCIIds(const char *driver_search_phrase, const char *pci_id_search_phrase) { - std::vector> PCI_IDS; -#ifndef _WIN32 - char uevent_filename[MAXPATHSIZE]; - const char *sys_bus_pci_devices_dir = "/sys/bus/pci/devices"; - DIR *dirp; - struct dirent *dir; - dirp = opendir(sys_bus_pci_devices_dir); - if (dirp) { - while ((dir = readdir(dirp)) != 0) { - // foreach subdir look for uevent file - if ((strcmp(dir->d_name, ".") == 0) || (strcmp(dir->d_name, "..") == 0)) - continue; - snprintf(uevent_filename, MAXPATHSIZE, "%s/%s/uevent", - sys_bus_pci_devices_dir, dir->d_name); - std::string file_contents = getFileContents(std::string(uevent_filename)); - if (!file_contents.empty()) { - std::size_t found_loc = file_contents.find(driver_search_phrase); - if (found_loc != std::string::npos) { - found_loc = file_contents.find(pci_id_search_phrase); - if (found_loc != std::string::npos) { - std::string pci_id = file_contents.substr(found_loc + 7, 9); - unsigned vid32, devid32; - sscanf(pci_id.c_str(), "%x:%x", &vid32, &devid32); - uint16_t vid = vid32; - uint16_t devid = devid32; - std::string offload_arch = getOffloadArch(vid, devid); - - if (!offload_arch.empty()) { - PCI_IDS.emplace_back(offload_arch, pci_id); - } - } - } - } - } // end of foreach subdir - closedir(dirp); - } else { - fprintf(stderr, "ERROR: failed to open directory %s.\n", - sys_bus_pci_devices_dir); - exit(1); - } -#endif - return PCI_IDS; -} - -std::vector lookupCodename(const std::string &lookup_codename) { - std::vector PCI_IDS; - for (const AOT_CODENAME_ID_TO_STRING id2str : AOT_CODENAMES) - if (lookup_codename.compare(id2str.codename) == 0) - for (auto aot_table_entry : AOT_TABLE) { - if (id2str.codename_id == aot_table_entry.codename_id) { - uint16_t VendorID; - uint16_t DeviceID; - char pci_id[10]; - VendorID = aot_table_entry.vendorid; - DeviceID = aot_table_entry.devid; - snprintf(&pci_id[0], 10, "%x:%x", VendorID, DeviceID); - PCI_IDS.push_back(std::string(&pci_id[0])); - } - } - return PCI_IDS; -} - -std::vector lookupOffloadArch(std::string lookup_offload_arch) { - std::vector PCI_IDS; - for (auto id2str : AOT_OFFLOADARCHS) { - if (lookup_offload_arch.compare(id2str.offloadarch) == 0) - for (auto aot_table_entry : AOT_TABLE) { - if (id2str.offloadarch_id == aot_table_entry.offloadarch_id) { - uint16_t VendorID; - uint16_t DeviceID; - char pci_id[10]; - VendorID = aot_table_entry.vendorid; - DeviceID = aot_table_entry.devid; - snprintf(&pci_id[0], 10, "%x:%x", VendorID, DeviceID); - PCI_IDS.push_back(std::string(&pci_id[0])); - } - } - } - return PCI_IDS; -} - -std::string getCodename(std::string offloadArch) { - - for (auto aot_table_entry : AOT_AMD_OFFLOADARCH_TO_CODENAME_TABLE) - if (aot_table_entry.offloadarch == offloadArch) - return std::string(aot_table_entry.codename); - - return " "; -} - -std::string getOffloadArch(uint16_t VendorID, uint16_t DeviceID) { - std::string retval; - for (auto aot_table_entry : AOT_TABLE) { - if ((VendorID == aot_table_entry.vendorid) && - (DeviceID == aot_table_entry.devid)) - for (auto id2str : AOT_OFFLOADARCHS) - if (id2str.offloadarch_id == aot_table_entry.offloadarch_id) - return std::string(id2str.offloadarch); - } - return retval; -} - -std::string -getVendorCapabilities(const std::pair &offloadarch) { - - if (StringRef(offloadarch.first).starts_with_insensitive("gfx") && - StringRef(offloadarch.second).starts_with_insensitive("gpu")) { - return getAMDGPUCapabilitiesForOffloadarch(offloadarch.second); - } - - std::string pci_id = offloadarch.second; - unsigned vid, devid; - sscanf(pci_id.c_str(), "%x:%x", &vid, &devid); - - switch (vid) { - case 0x1002: - return getAMDGPUCapabilities((uint16_t)vid, (uint16_t)devid, - offloadarch.first); - case 0x10de: - return getNVPTXCapabilities((uint16_t)vid, (uint16_t)devid, - offloadarch.first); - } - - return ""; -} - -std::string getTriple(const std::string& offloadarch) { - StringRef OffloadarchRef(offloadarch); - - if (OffloadarchRef.starts_with_insensitive("gfx")) - return (std::string("amdgcn-amd-amdhsa")); - - if (OffloadarchRef.starts_with_insensitive("sm")) - return (std::string("nvptx64-nvidia-cuda")); - - return ""; -} - -std::vector> -getAllPCIIds(bool hsa_detection) { - std::vector> PCI_IDS = getAmdGpuDevices( - AMDGPU_SEARCH_PHRASE, AMDGPU_PCIID_PHRASE, hsa_detection); - std::vector> PCI_IDS_NV = - getPCIIds(NVIDIA_SEARCH_PHRASE, NVIDIA_PCIID_PHRASE); - PCI_IDS.insert(std::end(PCI_IDS), std::begin(PCI_IDS_NV), - std::end(PCI_IDS_NV)); - return PCI_IDS; -} - -[[noreturn]] inline void exitWithError(const Twine &Message, - StringRef Whence = StringRef(), - StringRef Hint = StringRef()) { - WithColor::error(errs(), "offload-arch"); - if (!Whence.empty()) - errs() << Whence.str() << ": "; - errs() << Message << "\n"; - if (!Hint.empty()) - WithColor::note() << Hint.str() << "\n"; - ::exit(EXIT_FAILURE); -} -[[noreturn]] inline void exitWithError(std::error_code EC, - StringRef Whence = StringRef()) { - exitWithError(EC.message(), Whence); -} -[[noreturn]] inline void exitWithError(Error E, StringRef Whence) { - exitWithError(errorToErrorCode(std::move(E)), Whence); -} -template -T unwrapOrError(Expected EO, Ts &&...Args) { - if (EO) - return std::move(*EO); - exitWithError(EO.takeError(), std::forward(Args)...); -} - -/// Function used by offload-arch tool to get requirements from each image of -/// an elf binary file. Requirements (like offload arch name, target features) -/// are read from a custom section ".offload_arch_list" in elf binary. -std::vector -getOffloadArchFromBinary(const std::string &input_filename) { - std::vector results; - ErrorOr> BufOrError = - MemoryBuffer::getFile(input_filename); - if (!BufOrError) { - fprintf(stderr, " MemoryBuffer error reading file \n"); - results.push_back("MEM ERROR"); - return results; - } - std::unique_ptr FileReadBuffer = std::move(*BufOrError); - Expected> BinaryOrErr = - createBinary(FileReadBuffer->getMemBufferRef(), /*Context=*/nullptr, - /*InitContent=*/false); - if (!BinaryOrErr) { - results.push_back("createBinary ERROR"); - return results; - } - std::unique_ptr Bin = std::move(*BinaryOrErr); - if (!isa>(Bin)) { - results.push_back("NOT ELF64LE"); - return results; - } - ELFObjectFile *elf_obj_file = - dyn_cast>(Bin.get()); - StringRef FileName = elf_obj_file->getFileName(); - for (section_iterator SI = elf_obj_file->section_begin(), - SE = elf_obj_file->section_end(); - SI != SE; ++SI) { - const SectionRef &Section = *SI; - StringRef SectionName = unwrapOrError(Section.getName(), FileName); - if (SectionName == ".offload_arch_list") { - StringRef Contents = unwrapOrError(Section.getContents(), FileName); - const char *arch_list_ptr = Contents.data(); - std::string arch; - // Iterate over list of requirements to extract individual requirements. - for (unsigned i = 0; i < Contents.size(); i++) { - for (unsigned j = i; arch_list_ptr[j] != '\0'; j++, i++) { - arch.push_back(arch_list_ptr[i]); - } - results.push_back(arch); - arch.resize(0); - } - } - } - return results; -} diff --git a/llvm/lib/OffloadArch/amdgpu/codename2offloadarch.txt b/llvm/lib/OffloadArch/amdgpu/codename2offloadarch.txt deleted file mode 100644 index eb1dd697ddd29a..00000000000000 --- a/llvm/lib/OffloadArch/amdgpu/codename2offloadarch.txt +++ /dev/null @@ -1,33 +0,0 @@ -ALDEBARAN gfx90a -ARCTURUS gfx908 -BEIGE_GOBY gfx1034 -CARRIZO gfx801 -CYAN_SKILLFISH gfx1013 -DIMGREY_CAVEFISH gfx1032 -FIJI gfx803 -HAWAII gfx701 -HOTPINK_BONEFISH gfx1102 -NAVI10 gfx1010 -NAVI12 gfx1011 -NAVI14 gfx1012 -NAVY_FLOUNDER gfx1031 -PINK_SARDINE gfx1103 -PLUM_BONITO gfx1100 -POLARIS10 gfx803 -POLARIS11 gfx803 -POLARIS12 gfx803 -RAPHAEL gfx1036 -RAVEN gfx902 -REMBRANDT gfx1035 -RENOIR gfx90c -SIENNA_CICHLID gfx1030 -SPECTRE gfx700 -SPOOKY gfx700 -TONGA gfx802 -VANGOGH gfx1033 -VEGA10 gfx900 -VEGA12 gfx904 -VEGA20 gfx906 -VEGAM gfx803 -WHEAT_NAS gfx1101 -YELLOW_CARP gfx1035 diff --git a/llvm/lib/OffloadArch/amdgpu/hsa-subset.h b/llvm/lib/OffloadArch/amdgpu/hsa-subset.h deleted file mode 100644 index a7fef700b6bb61..00000000000000 --- a/llvm/lib/OffloadArch/amdgpu/hsa-subset.h +++ /dev/null @@ -1,608 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// -// The University of Illinois/NCSA -// Open Source License (NCSA) -// -// Copyright (c) 2014-2021, Advanced Micro Devices, Inc. All rights reserved. -// -// Developed by: -// -// AMD Research and AMD HSA Software Development -// -// Advanced Micro Devices, Inc. -// -// www.amd.com -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to -// deal with the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// - Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimers. -// - Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimers in -// the documentation and/or other materials provided with the distribution. -// - Neither the names of Advanced Micro Devices, Inc, -// nor the names of its contributors may be used to endorse or promote -// products derived from this Software without specific prior written -// permission. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR -// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS WITH THE SOFTWARE. -// -//////////////////////////////////////////////////////////////////////////////// - -#ifndef HSA_RUNTIME_SUBSET_H_ -#define HSA_RUNTIME_SUBSET_H_ - -typedef struct hsa_dim3_s { - uint32_t x; - uint32_t y; - uint32_t z; -} hsa_dim3_t; - -/** - * @brief Status codes. - */ -typedef enum { - /** - * The function has been executed successfully. - */ - HSA_STATUS_SUCCESS = 0x0, - /** - * A traversal over a list of elements has been interrupted by the - * application before completing. - */ - HSA_STATUS_INFO_BREAK = 0x1, - /** - * A generic error has occurred. - */ - HSA_STATUS_ERROR = 0x1000, - /** - * One of the actual arguments does not meet a precondition stated in the - * documentation of the corresponding formal argument. - */ - HSA_STATUS_ERROR_INVALID_ARGUMENT = 0x1001, - /** - * The requested queue creation is not valid. - */ - HSA_STATUS_ERROR_INVALID_QUEUE_CREATION = 0x1002, - /** - * The requested allocation is not valid. - */ - HSA_STATUS_ERROR_INVALID_ALLOCATION = 0x1003, - /** - * The agent is invalid. - */ - HSA_STATUS_ERROR_INVALID_AGENT = 0x1004, - /** - * The memory region is invalid. - */ - HSA_STATUS_ERROR_INVALID_REGION = 0x1005, - /** - * The signal is invalid. - */ - HSA_STATUS_ERROR_INVALID_SIGNAL = 0x1006, - /** - * The queue is invalid. - */ - HSA_STATUS_ERROR_INVALID_QUEUE = 0x1007, - /** - * The HSA runtime failed to allocate the necessary resources. This error - * may also occur when the HSA runtime needs to spawn threads or create - * internal OS-specific events. - */ - HSA_STATUS_ERROR_OUT_OF_RESOURCES = 0x1008, - /** - * The AQL packet is malformed. - */ - HSA_STATUS_ERROR_INVALID_PACKET_FORMAT = 0x1009, - /** - * An error has been detected while releasing a resource. - */ - HSA_STATUS_ERROR_RESOURCE_FREE = 0x100A, - /** - * An API other than ::hsa_init has been invoked while the reference count - * of the HSA runtime is 0. - */ - HSA_STATUS_ERROR_NOT_INITIALIZED = 0x100B, - /** - * The maximum reference count for the object has been reached. - */ - HSA_STATUS_ERROR_REFCOUNT_OVERFLOW = 0x100C, - /** - * The arguments passed to a functions are not compatible. - */ - HSA_STATUS_ERROR_INCOMPATIBLE_ARGUMENTS = 0x100D, - /** - * The index is invalid. - */ - HSA_STATUS_ERROR_INVALID_INDEX = 0x100E, - /** - * The instruction set architecture is invalid. - */ - HSA_STATUS_ERROR_INVALID_ISA = 0x100F, - /** - * The instruction set architecture name is invalid. - */ - HSA_STATUS_ERROR_INVALID_ISA_NAME = 0x1017, - /** - * The code object is invalid. - */ - HSA_STATUS_ERROR_INVALID_CODE_OBJECT = 0x1010, - /** - * The executable is invalid. - */ - HSA_STATUS_ERROR_INVALID_EXECUTABLE = 0x1011, - /** - * The executable is frozen. - */ - HSA_STATUS_ERROR_FROZEN_EXECUTABLE = 0x1012, - /** - * There is no symbol with the given name. - */ - HSA_STATUS_ERROR_INVALID_SYMBOL_NAME = 0x1013, - /** - * The variable is already defined. - */ - HSA_STATUS_ERROR_VARIABLE_ALREADY_DEFINED = 0x1014, - /** - * The variable is undefined. - */ - HSA_STATUS_ERROR_VARIABLE_UNDEFINED = 0x1015, - /** - * An HSAIL operation resulted in a hardware exception. - */ - HSA_STATUS_ERROR_EXCEPTION = 0x1016, - /** - * The code object symbol is invalid. - */ - HSA_STATUS_ERROR_INVALID_CODE_SYMBOL = 0x1018, - /** - * The executable symbol is invalid. - */ - HSA_STATUS_ERROR_INVALID_EXECUTABLE_SYMBOL = 0x1019, - /** - * The file descriptor is invalid. - */ - HSA_STATUS_ERROR_INVALID_FILE = 0x1020, - /** - * The code object reader is invalid. - */ - HSA_STATUS_ERROR_INVALID_CODE_OBJECT_READER = 0x1021, - /** - * The cache is invalid. - */ - HSA_STATUS_ERROR_INVALID_CACHE = 0x1022, - /** - * The wavefront is invalid. - */ - HSA_STATUS_ERROR_INVALID_WAVEFRONT = 0x1023, - /** - * The signal group is invalid. - */ - HSA_STATUS_ERROR_INVALID_SIGNAL_GROUP = 0x1024, - /** - * The HSA runtime is not in the configuration state. - */ - HSA_STATUS_ERROR_INVALID_RUNTIME_STATE = 0x1025, - /** - * The queue received an error that may require process termination. - */ - HSA_STATUS_ERROR_FATAL = 0x1026 -} hsa_status_t; - -/** - * @brief Agent features. - */ -typedef enum { - /** - * The agent supports AQL packets of kernel dispatch type. If this - * feature is enabled, the agent is also a kernel agent. - */ - HSA_AGENT_FEATURE_KERNEL_DISPATCH = 1, - /** - * The agent supports AQL packets of agent dispatch type. - */ - HSA_AGENT_FEATURE_AGENT_DISPATCH = 2 -} hsa_agent_feature_t; - -/** - * @brief Instruction set architecture. - */ -typedef struct hsa_isa_s { - /** - * Opaque handle. Two handles reference the same object of the enclosing type - * if and only if they are equal. - */ - uint64_t handle; -} hsa_isa_t; - -/** - * @brief Instruction set architecture attributes. - */ -typedef enum { - /** - * The length of the ISA name in bytes, not including the NUL terminator. The - * type of this attribute is uint32_t. - */ - HSA_ISA_INFO_NAME_LENGTH = 0, - /** - * Human-readable description. The type of this attribute is character array - * with the length equal to the value of ::HSA_ISA_INFO_NAME_LENGTH attribute. - */ - HSA_ISA_INFO_NAME = 1, - /** - * @deprecated - * - * Number of call conventions supported by the instruction set architecture. - * Must be greater than zero. The type of this attribute is uint32_t. - */ - HSA_ISA_INFO_CALL_CONVENTION_COUNT = 2, - /** - * @deprecated - * - * Number of work-items in a wavefront for a given call convention. Must be a - * power of 2 in the range [1,256]. The type of this attribute is uint32_t. - */ - HSA_ISA_INFO_CALL_CONVENTION_INFO_WAVEFRONT_SIZE = 3, - /** - * @deprecated - * - * Number of wavefronts per compute unit for a given call convention. In - * practice, other factors (for example, the amount of group memory used by a - * work-group) may further limit the number of wavefronts per compute - * unit. The type of this attribute is uint32_t. - */ - HSA_ISA_INFO_CALL_CONVENTION_INFO_WAVEFRONTS_PER_COMPUTE_UNIT = 4, - /** - * Machine models supported by the instruction set architecture. The type of - * this attribute is a bool[2]. If the ISA supports the small machine model, - * the element at index ::HSA_MACHINE_MODEL_SMALL is true. If the ISA supports - * the large model, the element at index ::HSA_MACHINE_MODEL_LARGE is true. - */ - HSA_ISA_INFO_MACHINE_MODELS = 5, - /** - * Profiles supported by the instruction set architecture. The type of this - * attribute is a bool[2]. If the ISA supports the base profile, the element - * at index ::HSA_PROFILE_BASE is true. If the ISA supports the full profile, - * the element at index ::HSA_PROFILE_FULL is true. - */ - HSA_ISA_INFO_PROFILES = 6, - /** - * Default floating-point rounding modes supported by the instruction set - * architecture. The type of this attribute is a bool[3]. The value at a given - * index is true if the corresponding rounding mode in - * ::hsa_default_float_rounding_mode_t is supported. At least one default mode - * has to be supported. - * - * If the default mode is supported, then - * ::HSA_ISA_INFO_BASE_PROFILE_DEFAULT_FLOAT_ROUNDING_MODES must report that - * both the zero and the near roundings modes are supported. - */ - HSA_ISA_INFO_DEFAULT_FLOAT_ROUNDING_MODES = 7, - /** - * Default floating-point rounding modes supported by the instruction set - * architecture in the Base profile. The type of this attribute is a - * bool[3]. The value at a given index is true if the corresponding rounding - * mode in ::hsa_default_float_rounding_mode_t is supported. The value at - * index HSA_DEFAULT_FLOAT_ROUNDING_MODE_DEFAULT must be false. At least one - * of the values at indexes ::HSA_DEFAULT_FLOAT_ROUNDING_MODE_ZERO or - * HSA_DEFAULT_FLOAT_ROUNDING_MODE_NEAR must be true. - */ - HSA_ISA_INFO_BASE_PROFILE_DEFAULT_FLOAT_ROUNDING_MODES = 8, - /** - * Flag indicating that the f16 HSAIL operation is at least as fast as the - * f32 operation in the instruction set architecture. The type of this - * attribute is bool. - */ - HSA_ISA_INFO_FAST_F16_OPERATION = 9, - /** - * Maximum number of work-items of each dimension of a work-group. Each - * maximum must be greater than 0. No maximum can exceed the value of - * ::HSA_ISA_INFO_WORKGROUP_MAX_SIZE. The type of this attribute is - * uint16_t[3]. - */ - HSA_ISA_INFO_WORKGROUP_MAX_DIM = 12, - /** - * Maximum total number of work-items in a work-group. The type - * of this attribute is uint32_t. - */ - HSA_ISA_INFO_WORKGROUP_MAX_SIZE = 13, - /** - * Maximum number of work-items of each dimension of a grid. Each maximum must - * be greater than 0, and must not be smaller than the corresponding value in - * ::HSA_ISA_INFO_WORKGROUP_MAX_DIM. No maximum can exceed the value of - * ::HSA_ISA_INFO_GRID_MAX_SIZE. The type of this attribute is - * ::hsa_dim3_t. - */ - HSA_ISA_INFO_GRID_MAX_DIM = 14, - /** - * Maximum total number of work-items in a grid. The type of this - * attribute is uint64_t. - */ - HSA_ISA_INFO_GRID_MAX_SIZE = 16, - /** - * Maximum number of fbarriers per work-group. Must be at least 32. The - * type of this attribute is uint32_t. - */ - HSA_ISA_INFO_FBARRIER_MAX_SIZE = 17 -} hsa_isa_info_t; - -/** - * @brief Struct containing an opaque handle to an agent, a device that - * participates in the HSA memory model. An agent can submit AQL packets for - * execution, and may also accept AQL packets for execution (agent dispatch - * packets or kernel dispatch packets launching HSAIL-derived binaries). - */ -typedef struct hsa_agent_s { - /** - * Opaque handle. Two handles reference the same object of the enclosing type - * if and only if they are equal. - */ - uint64_t handle; -} hsa_agent_t; - -/** - * @brief Agent attributes. - */ -typedef enum { - /** - * Agent name. The type of this attribute is a NUL-terminated char[64]. The - * name must be at most 63 characters long (not including the NUL terminator) - * and all array elements not used for the name must be NUL. - */ - HSA_AGENT_INFO_NAME = 0, - /** - * Name of vendor. The type of this attribute is a NUL-terminated char[64]. - * The name must be at most 63 characters long (not including the NUL - * terminator) and all array elements not used for the name must be NUL. - */ - HSA_AGENT_INFO_VENDOR_NAME = 1, - /** - * Agent capability. The type of this attribute is ::hsa_agent_feature_t. - */ - HSA_AGENT_INFO_FEATURE = 2, - /** - * @deprecated Query ::HSA_ISA_INFO_MACHINE_MODELS for a given intruction set - * architecture supported by the agent instead. If more than one ISA is - * supported by the agent, the returned value corresponds to the first ISA - * enumerated by ::hsa_agent_iterate_isas. - * - * Machine model supported by the agent. The type of this attribute is - * ::hsa_machine_model_t. - */ - HSA_AGENT_INFO_MACHINE_MODEL = 3, - /** - * @deprecated Query ::HSA_ISA_INFO_PROFILES for a given intruction set - * architecture supported by the agent instead. If more than one ISA is - * supported by the agent, the returned value corresponds to the first ISA - * enumerated by ::hsa_agent_iterate_isas. - * - * Profile supported by the agent. The type of this attribute is - * ::hsa_profile_t. - */ - HSA_AGENT_INFO_PROFILE = 4, - /** - * @deprecated Query ::HSA_ISA_INFO_DEFAULT_FLOAT_ROUNDING_MODES for a given - * intruction set architecture supported by the agent instead. If more than - * one ISA is supported by the agent, the returned value corresponds to the - * first ISA enumerated by ::hsa_agent_iterate_isas. - * - * Default floating-point rounding mode. The type of this attribute is - * ::hsa_default_float_rounding_mode_t, but the value - * ::HSA_DEFAULT_FLOAT_ROUNDING_MODE_DEFAULT is not allowed. - */ - HSA_AGENT_INFO_DEFAULT_FLOAT_ROUNDING_MODE = 5, - /** - * @deprecated Query ::HSA_ISA_INFO_BASE_PROFILE_DEFAULT_FLOAT_ROUNDING_MODES - * for a given intruction set architecture supported by the agent instead. If - * more than one ISA is supported by the agent, the returned value corresponds - * to the first ISA enumerated by ::hsa_agent_iterate_isas. - * - * A bit-mask of ::hsa_default_float_rounding_mode_t values, representing the - * default floating-point rounding modes supported by the agent in the Base - * profile. The type of this attribute is uint32_t. The default floating-point - * rounding mode (::HSA_AGENT_INFO_DEFAULT_FLOAT_ROUNDING_MODE) bit must not - * be set. - */ - HSA_AGENT_INFO_BASE_PROFILE_DEFAULT_FLOAT_ROUNDING_MODES = 23, - /** - * @deprecated Query ::HSA_ISA_INFO_FAST_F16_OPERATION for a given intruction - * set architecture supported by the agent instead. If more than one ISA is - * supported by the agent, the returned value corresponds to the first ISA - * enumerated by ::hsa_agent_iterate_isas. - * - * Flag indicating that the f16 HSAIL operation is at least as fast as the - * f32 operation in the current agent. The value of this attribute is - * undefined if the agent is not a kernel agent. The type of this - * attribute is bool. - */ - HSA_AGENT_INFO_FAST_F16_OPERATION = 24, - /** - * @deprecated Query ::HSA_WAVEFRONT_INFO_SIZE for a given wavefront and - * intruction set architecture supported by the agent instead. If more than - * one ISA is supported by the agent, the returned value corresponds to the - * first ISA enumerated by ::hsa_agent_iterate_isas and the first wavefront - * enumerated by ::hsa_isa_iterate_wavefronts for that ISA. - * - * Number of work-items in a wavefront. Must be a power of 2 in the range - * [1,256]. The value of this attribute is undefined if the agent is not - * a kernel agent. The type of this attribute is uint32_t. - */ - HSA_AGENT_INFO_WAVEFRONT_SIZE = 6, - /** - * @deprecated Query ::HSA_ISA_INFO_WORKGROUP_MAX_DIM for a given intruction - * set architecture supported by the agent instead. If more than one ISA is - * supported by the agent, the returned value corresponds to the first ISA - * enumerated by ::hsa_agent_iterate_isas. - * - * Maximum number of work-items of each dimension of a work-group. Each - * maximum must be greater than 0. No maximum can exceed the value of - * ::HSA_AGENT_INFO_WORKGROUP_MAX_SIZE. The value of this attribute is - * undefined if the agent is not a kernel agent. The type of this - * attribute is uint16_t[3]. - */ - HSA_AGENT_INFO_WORKGROUP_MAX_DIM = 7, - /** - * @deprecated Query ::HSA_ISA_INFO_WORKGROUP_MAX_SIZE for a given intruction - * set architecture supported by the agent instead. If more than one ISA is - * supported by the agent, the returned value corresponds to the first ISA - * enumerated by ::hsa_agent_iterate_isas. - * - * Maximum total number of work-items in a work-group. The value of this - * attribute is undefined if the agent is not a kernel agent. The type - * of this attribute is uint32_t. - */ - HSA_AGENT_INFO_WORKGROUP_MAX_SIZE = 8, - /** - * @deprecated Query ::HSA_ISA_INFO_GRID_MAX_DIM for a given intruction set - * architecture supported by the agent instead. - * - * Maximum number of work-items of each dimension of a grid. Each maximum must - * be greater than 0, and must not be smaller than the corresponding value in - * ::HSA_AGENT_INFO_WORKGROUP_MAX_DIM. No maximum can exceed the value of - * ::HSA_AGENT_INFO_GRID_MAX_SIZE. The value of this attribute is undefined - * if the agent is not a kernel agent. The type of this attribute is - * ::hsa_dim3_t. - */ - HSA_AGENT_INFO_GRID_MAX_DIM = 9, - /** - * @deprecated Query ::HSA_ISA_INFO_GRID_MAX_SIZE for a given intruction set - * architecture supported by the agent instead. If more than one ISA is - * supported by the agent, the returned value corresponds to the first ISA - * enumerated by ::hsa_agent_iterate_isas. - * - * Maximum total number of work-items in a grid. The value of this attribute - * is undefined if the agent is not a kernel agent. The type of this - * attribute is uint32_t. - */ - HSA_AGENT_INFO_GRID_MAX_SIZE = 10, - /** - * @deprecated Query ::HSA_ISA_INFO_FBARRIER_MAX_SIZE for a given intruction - * set architecture supported by the agent instead. If more than one ISA is - * supported by the agent, the returned value corresponds to the first ISA - * enumerated by ::hsa_agent_iterate_isas. - * - * Maximum number of fbarriers per work-group. Must be at least 32. The value - * of this attribute is undefined if the agent is not a kernel agent. The - * type of this attribute is uint32_t. - */ - HSA_AGENT_INFO_FBARRIER_MAX_SIZE = 11, - /** - * @deprecated The maximum number of queues is not statically determined. - * - * Maximum number of queues that can be active (created but not destroyed) at - * one time in the agent. The type of this attribute is uint32_t. - */ - HSA_AGENT_INFO_QUEUES_MAX = 12, - /** - * Minimum number of packets that a queue created in the agent - * can hold. Must be a power of 2 greater than 0. Must not exceed - * the value of ::HSA_AGENT_INFO_QUEUE_MAX_SIZE. The type of this - * attribute is uint32_t. - */ - HSA_AGENT_INFO_QUEUE_MIN_SIZE = 13, - /** - * Maximum number of packets that a queue created in the agent can - * hold. Must be a power of 2 greater than 0. The type of this attribute - * is uint32_t. - */ - HSA_AGENT_INFO_QUEUE_MAX_SIZE = 14, - /** - * Type of a queue created in the agent. The type of this attribute is - * ::hsa_queue_type32_t. - */ - HSA_AGENT_INFO_QUEUE_TYPE = 15, - /** - * @deprecated NUMA information is not exposed anywhere else in the API. - * - * Identifier of the NUMA node associated with the agent. The type of this - * attribute is uint32_t. - */ - HSA_AGENT_INFO_NODE = 16, - /** - * Type of hardware device associated with the agent. The type of this - * attribute is ::hsa_device_type_t. - */ - HSA_AGENT_INFO_DEVICE = 17, - /** - * @deprecated Query ::hsa_agent_iterate_caches to retrieve information about - * the caches present in a given agent. - * - * Array of data cache sizes (L1..L4). Each size is expressed in bytes. A size - * of 0 for a particular level indicates that there is no cache information - * for that level. The type of this attribute is uint32_t[4]. - */ - HSA_AGENT_INFO_CACHE_SIZE = 18, - /** - * @deprecated An agent may support multiple instruction set - * architectures. See ::hsa_agent_iterate_isas. If more than one ISA is - * supported by the agent, the returned value corresponds to the first ISA - * enumerated by ::hsa_agent_iterate_isas. - * - * Instruction set architecture of the agent. The type of this attribute - * is ::hsa_isa_t. - */ - HSA_AGENT_INFO_ISA = 19, - /** - * Bit-mask indicating which extensions are supported by the agent. An - * extension with an ID of @p i is supported if the bit at position @p i is - * set. The type of this attribute is uint8_t[128]. - */ - HSA_AGENT_INFO_EXTENSIONS = 20, - /** - * Major version of the HSA runtime specification supported by the - * agent. The type of this attribute is uint16_t. - */ - HSA_AGENT_INFO_VERSION_MAJOR = 21, - /** - * Minor version of the HSA runtime specification supported by the - * agent. The type of this attribute is uint16_t. - */ - HSA_AGENT_INFO_VERSION_MINOR = 22 - -} hsa_agent_info_t; - -/** - * @brief Agent attributes. - */ -typedef enum hsa_amd_agent_info_s { - /** - * Queries UUID of an agent. The value is an Ascii string with a maximum - * of 21 chars including NUL. The string value consists of two parts: header - * and body. The header identifies device type (GPU, CPU, DSP) while body - * encodes UUID as a 16 digit hex string - * - * Agents that do not support UUID will return the string "GPU-XX" or - * "CPU-XX" or "DSP-XX" depending upon their device type ::hsa_device_type_t - */ - HSA_AMD_AGENT_INFO_UUID = 0xA011 -} hsa_amd_agent_info_t; - -/** - * @brief Hardware device type. - */ -typedef enum { - /** - * CPU device. - */ - HSA_DEVICE_TYPE_CPU = 0, - /** - * GPU device. - */ - HSA_DEVICE_TYPE_GPU = 1, - /** - * DSP device. - */ - HSA_DEVICE_TYPE_DSP = 2 -} hsa_device_type_t; -#endif diff --git a/llvm/lib/OffloadArch/amdgpu/pciid2codename.txt b/llvm/lib/OffloadArch/amdgpu/pciid2codename.txt deleted file mode 100644 index e76bae21d8c615..00000000000000 --- a/llvm/lib/OffloadArch/amdgpu/pciid2codename.txt +++ /dev/null @@ -1,182 +0,0 @@ -1002:1304 0000 0000 SPECTRE : Spectre -1002:1305 0000 0000 SPECTRE : Spectre -1002:1306 0000 0000 SPECTRE : Spectre -1002:1307 0000 0000 SPECTRE : Spectre -1002:1309 0000 0000 SPECTRE : Spectre -1002:130A 0000 0000 SPECTRE : Spectre -1002:130B 0000 0000 SPECTRE : Spectre -1002:130C 0000 0000 SPECTRE : Spectre -1002:130D 0000 0000 SPECTRE : Spectre -1002:130E 0000 0000 SPECTRE : Spectre -1002:130F 0000 0000 SPECTRE : Spectre -1002:1310 0000 0000 SPECTRE : Spectre -1002:1311 0000 0000 SPECTRE : Spectre -1002:1312 0000 0000 SPOOKY : Spooky -1002:1313 0000 0000 SPECTRE : Spectre -1002:1315 0000 0000 SPECTRE : Spectre -1002:1316 0000 0000 SPOOKY : Spooky -1002:1317 0000 0000 SPOOKY : Spooky -1002:1318 0000 0000 SPECTRE : Spectre -1002:131B 0000 0000 SPECTRE : Spectre -1002:131C 0000 0000 SPECTRE : Spectre -1002:131D 0000 0000 SPECTRE : Spectre -1002:67A0 0000 0000 HAWAII : Hawaii -1002:67A1 0000 0000 HAWAII : Hawaii -1002:67A2 0000 0000 HAWAII : Hawaii -1002:67A8 0000 0000 HAWAII : Hawaii -1002:67A9 0000 0000 HAWAII : Hawaii -1002:67AA 0000 0000 HAWAII : Hawaii -1002:67B0 0000 0000 HAWAII : Hawaii -1002:67B1 0000 0000 HAWAII : Hawaii -1002:67B8 0000 0000 HAWAII : Hawaii -1002:67B9 0000 0000 HAWAII : Hawaii -1002:67BA 0000 0000 HAWAII : Hawaii -1002:67BE 0000 0000 HAWAII : Hawaii -1002:9870 0000 0000 CARRIZO : Carrizo -1002:9874 0000 0000 CARRIZO : Carrizo -1002:9875 0000 0000 CARRIZO : Carrizo -1002:9876 0000 0000 CARRIZO : Carrizo -1002:9877 0000 0000 CARRIZO : Carrizo -1002:6920 0000 0000 TONGA : Tonga -1002:6921 0000 0000 TONGA : Tonga -1002:6928 0000 0000 TONGA : Tonga -1002:6929 0000 0000 TONGA : Tonga -1002:692B 0000 0000 TONGA : Tonga -1002:692F 0000 0000 TONGA : Tonga -1002:6930 0000 0000 TONGA : Tonga -1002:6938 0000 0000 TONGA : Tonga -1002:6939 0000 0000 TONGA : Tonga -1002:7300 0000 0000 FIJI : Fiji -1002:730F 0000 0000 FIJI : Fiji -1002:67C0 0000 0000 POLARIS10 : Polaris10 -1002:67C1 0000 0000 POLARIS10 : Polaris10 -1002:67C2 0000 0000 POLARIS10 : Polaris10 -1002:67C4 0000 0000 POLARIS10 : Polaris10 -1002:67C7 0000 0000 POLARIS10 : Polaris10 -1002:67C8 0000 0000 POLARIS10 : Polaris10 -1002:67C9 0000 0000 POLARIS10 : Polaris10 -1002:67CA 0000 0000 POLARIS10 : Polaris10 -1002:67CC 0000 0000 POLARIS10 : Polaris10 -1002:67CF 0000 0000 POLARIS10 : Polaris10 -1002:67D0 0000 0000 POLARIS10 : Polaris10 -1002:67DF 0000 0000 POLARIS10 : Polaris10 -1002:6FDF 0000 0000 POLARIS10 : Polaris10 -1002:67E0 0000 0000 POLARIS11 : Polaris11 -1002:67E1 0000 0000 POLARIS11 : Polaris11 -1002:67E3 0000 0000 POLARIS11 : Polaris11 -1002:67E7 0000 0000 POLARIS11 : Polaris11 -1002:67E8 0000 0000 POLARIS11 : Polaris11 -1002:67E9 0000 0000 POLARIS11 : Polaris11 -1002:67EB 0000 0000 POLARIS11 : Polaris11 -1002:67EF 0000 0000 POLARIS11 : Polaris11 -1002:67FF 0000 0000 POLARIS11 : Polaris11 -1002:6980 0000 0000 POLARIS12 : Polaris12 -1002:6981 0000 0000 POLARIS12 : Polaris12 -1002:6985 0000 0000 POLARIS12 : Polaris12 -1002:6986 0000 0000 POLARIS12 : Polaris12 -1002:6987 0000 0000 POLARIS12 : Polaris12 -1002:6995 0000 0000 POLARIS12 : Polaris12 -1002:6997 0000 0000 POLARIS12 : Polaris12 -1002:699F 0000 0000 POLARIS12 : Polaris12 -1002:694C 0000 0000 VEGAM : VegaM -1002:694E 0000 0000 VEGAM : VegaM -1002:694F 0000 0000 VEGAM : VegaM -1002:6860 0000 0000 VEGA10 : Vega10 -1002:6861 0000 0000 VEGA10 : Vega10 -1002:6862 0000 0000 VEGA10 : Vega10 -1002:6863 0000 0000 VEGA10 : Vega10 -1002:6864 0000 0000 VEGA10 : Vega10 -1002:6867 0000 0000 VEGA10 : Vega10 -1002:6868 0000 0000 VEGA10 : Vega10 -1002:6869 0000 0000 VEGA10 : Vega10 -1002:686A 0000 0000 VEGA10 : Vega10 -1002:686B 0000 0000 VEGA10 : Vega10 -1002:686C 0000 0000 VEGA10 : Vega10 -1002:686D 0000 0000 VEGA10 : Vega10 -1002:686E 0000 0000 VEGA10 : Vega10 -1002:687F 0000 0000 VEGA10 : Vega10 -1002:69A0 0000 0000 VEGA12 : Vega12 -1002:69A1 0000 0000 VEGA12 : Vega12 -1002:69A2 0000 0000 VEGA12 : Vega12 -1002:69A3 0000 0000 VEGA12 : Vega12 -1002:69Af 0000 0000 VEGA12 : Vega12 -1002:15DD 0000 0000 RAVEN : Raven -1002:15D8 0000 0000 RAVEN : Raven -1002:66A0 0000 0000 VEGA20 : Vega20 -1002:66A1 0000 0000 VEGA20 : Vega20 -1002:66A2 0000 0000 VEGA20 : Vega20 -1002:66A3 0000 0000 VEGA20 : Vega20 -1002:66A4 0000 0000 VEGA20 : Vega20 -1002:66A7 0000 0000 VEGA20 : Vega20 -1002:66AF 0000 0000 VEGA20 : Vega20 -1002:7388 0000 0000 ARCTURUS : Arcturus -1002:738C 0000 0000 ARCTURUS : Arcturus -1002:738E 0000 0000 ARCTURUS : Arcturus -1002:7390 0000 0000 ARCTURUS : Arcturus -1002:7408 0000 0000 ALDEBARAN : Aldebaran -1002:740C 0000 0000 ALDEBARAN : Aldebaran -1002:740F 0000 0000 ALDEBARAN : Aldebaran -1002:7410 0000 0000 ALDEBARAN : Aldebaran -1002:15E7 0000 0000 RENOIR : Renoir -1002:1636 0000 0000 RENOIR : Renoir -1002:1638 0000 0000 RENOIR : Renoir -1002:164C 0000 0000 RENOIR : Renoir -1002:7310 0000 0000 NAVI10 : Navi10 -1002:7312 0000 0000 NAVI10 : Navi10 -1002:7318 0000 0000 NAVI10 : Navi10 -1002:731A 0000 0000 NAVI10 : Navi10 -1002:731E 0000 0000 NAVI10 : Navi10 -1002:731F 0000 0000 NAVI10 : Navi10 -1002:13F9 0000 0000 CYAN_SKILLFISH : cyan_skillfish -1002:13FA 0000 0000 CYAN_SKILLFISH : cyan_skillfish -1002:13FB 0000 0000 CYAN_SKILLFISH : cyan_skillfish -1002:13FC 0000 0000 CYAN_SKILLFISH : cyan_skillfish -1002:13FE 0000 0000 CYAN_SKILLFISH : cyan_skillfish -1002:7340 0000 0000 NAVI14 : Navi14 -1002:7341 0000 0000 NAVI14 : Navi14 -1002:7347 0000 0000 NAVI14 : Navi14 -1002:7360 0000 0000 NAVI12 : Navi12 -1002:7362 0000 0000 NAVI12 : Navi12 -1002:73A0 0000 0000 SIENNA_CICHLID : SIENNA_CICHLID -1002:73A1 0000 0000 SIENNA_CICHLID : SIENNA_CICHLID -1002:73A2 0000 0000 SIENNA_CICHLID : SIENNA_CICHLID -1002:73A3 0000 0000 SIENNA_CICHLID : SIENNA_CICHLID -1002:73A5 0000 0000 SIENNA_CICHLID : SIENNA_CICHLID -1002:73A8 0000 0000 SIENNA_CICHLID : SIENNA_CICHLID -1002:73A9 0000 0000 SIENNA_CICHLID : SIENNA_CICHLID -1002:73AC 0000 0000 SIENNA_CICHLID : SIENNA_CICHLID -1002:73AD 0000 0000 SIENNA_CICHLID : SIENNA_CICHLID -1002:73AB 0000 0000 SIENNA_CICHLID : SIENNA_CICHLID -1002:73AE 0000 0000 SIENNA_CICHLID : SIENNA_CICHLID -1002:73BF 0000 0000 SIENNA_CICHLID : SIENNA_CICHLID -1002:73C0 0000 0000 NAVY_FLOUNDER : NAVY_FLOUNDER -1002:73C1 0000 0000 NAVY_FLOUNDER : NAVY_FLOUNDER -1002:73C3 0000 0000 NAVY_FLOUNDER : NAVY_FLOUNDER -1002:73DA 0000 0000 NAVY_FLOUNDER : NAVY_FLOUNDER -1002:73DB 0000 0000 NAVY_FLOUNDER : NAVY_FLOUNDER -1002:73DC 0000 0000 NAVY_FLOUNDER : NAVY_FLOUNDER -1002:73DD 0000 0000 NAVY_FLOUNDER : NAVY_FLOUNDER -1002:73DE 0000 0000 NAVY_FLOUNDER : NAVY_FLOUNDER -1002:73DF 0000 0000 NAVY_FLOUNDER : NAVY_FLOUNDER -1002:73E0 0000 0000 DIMGREY_CAVEFISH : DIMGREY_CAVEFISH -1002:73E1 0000 0000 DIMGREY_CAVEFISH : DIMGREY_CAVEFISH -1002:73E2 0000 0000 DIMGREY_CAVEFISH : DIMGREY_CAVEFISH -1002:73E8 0000 0000 DIMGREY_CAVEFISH : DIMGREY_CAVEFISH -1002:73E9 0000 0000 DIMGREY_CAVEFISH : DIMGREY_CAVEFISH -1002:73EA 0000 0000 DIMGREY_CAVEFISH : DIMGREY_CAVEFISH -1002:73EB 0000 0000 DIMGREY_CAVEFISH : DIMGREY_CAVEFISH -1002:73EC 0000 0000 DIMGREY_CAVEFISH : DIMGREY_CAVEFISH -1002:73ED 0000 0000 DIMGREY_CAVEFISH : DIMGREY_CAVEFISH -1002:73EF 0000 0000 DIMGREY_CAVEFISH : DIMGREY_CAVEFISH -1002:73FF 0000 0000 DIMGREY_CAVEFISH : DIMGREY_CAVEFISH -1002:163F 0000 0000 VANGOGH : VanGogh -1002:7420 0000 0000 BEIGE_GOBY : BEIGE_GOBY -1002:7421 0000 0000 BEIGE_GOBY : BEIGE_GOBY -1002:7422 0000 0000 BEIGE_GOBY : BEIGE_GOBY -1002:7423 0000 0000 BEIGE_GOBY : BEIGE_GOBY -1002:743F 0000 0000 BEIGE_GOBY : BEIGE_GOBY -1002:164D 0000 0000 YELLOW_CARP : YELLOW_CARP -1002:1681 0000 0000 YELLOW_CARP : YELLOW_CARP -1002:744C 0000 0000 PLUM_BONITO : PLUM_BONITO -1002:164d 0000 0000 REMBRANDT : Rembrandt -1002:164e 0000 0000 RAPHAEL : Raphael diff --git a/llvm/lib/OffloadArch/amdgpu/vendor_specific_capabilities.cpp b/llvm/lib/OffloadArch/amdgpu/vendor_specific_capabilities.cpp deleted file mode 100644 index 2365561501d65a..00000000000000 --- a/llvm/lib/OffloadArch/amdgpu/vendor_specific_capabilities.cpp +++ /dev/null @@ -1,345 +0,0 @@ -//===------------------- offload-arch/OffloadArch.cpp ----------*- 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 -// -//===---------------------------------------------------------------------===// -/// -/// \file amdgpu/vendor_specific_capabilities.cpp -/// -/// Implementiton of getAMDGPUCapabilities() function for offload-arch tool. -/// This is only called with the -r flag to show all runtime capabilities that -/// would satisfy requirements of the compiled image. -/// -//===---------------------------------------------------------------------===// - -#include "llvm/OffloadArch/OffloadArch.h" -#include "llvm/Support/MemoryBuffer.h" -#include "llvm/Support/raw_ostream.h" - -// So offload-arch can be built without ROCm installed as a copy of hsa.h -// is stored with the tool in the vendor specific directory. This combined -// with dynamic loading (at runtime) of "libhsa-runtime64.so" allows -// offload-arch to be built without the ROCm platform installed. Of course hsa -// (rocr runtime) must be operational at runtime. -// -#include "hsa-subset.h" -#ifndef _WIN32 -#include -#endif -#include -#include -#include -#include -#include -#include - -struct amdgpu_features_t { - char *name_str; - uint32_t workgroup_max_size; - hsa_dim3_t grid_max_dim; - uint64_t grid_max_size; - uint32_t fbarrier_max_size; - uint16_t workgroup_max_dim[3]; - bool def_rounding_modes[3]; - bool base_rounding_modes[3]; - bool mach_models[2]; - bool profiles[2]; - bool fast_f16; -}; - -// static pointers to dynamically loaded HSA functions used in this module. -static hsa_status_t (*_dl_hsa_init)(); -static hsa_status_t (*_dl_hsa_shut_down)(); -static hsa_status_t (*_dl_hsa_isa_get_info_alt)(hsa_isa_t, hsa_isa_info_t, - void *); -static hsa_status_t (*_dl_hsa_agent_get_info)(hsa_agent_t, hsa_agent_info_t, - void *); -static hsa_status_t (*_dl_hsa_iterate_agents)( - hsa_status_t (*callback)(hsa_agent_t, void *), void *); -static hsa_status_t (*_dl_hsa_agent_iterate_isas)( - hsa_agent_t, hsa_status_t (*callback)(hsa_isa_t, void *), void *); - -// These two static vectors are created by HSA iterators and needed after -// iterators complete, so we save them statically. -static std::vector AMDGPU_FEATUREs; -static std::vector HSA_AGENTs; - -static std::string offload_arch_requested; -static bool first_call = true; - -#define _return_on_err(err) \ - { \ - if ((err) != HSA_STATUS_SUCCESS) { \ - return (err); \ - } \ - } - -static hsa_status_t get_isa_info(hsa_isa_t isa, void *data) { - hsa_status_t err; - amdgpu_features_t isa_i; - - uint32_t name_len; - err = _dl_hsa_isa_get_info_alt(isa, HSA_ISA_INFO_NAME_LENGTH, &name_len); - _return_on_err(err); - isa_i.name_str = new char[name_len]; - if (isa_i.name_str == nullptr) - return HSA_STATUS_ERROR_OUT_OF_RESOURCES; - err = _dl_hsa_isa_get_info_alt(isa, HSA_ISA_INFO_NAME, isa_i.name_str); - _return_on_err(err); - - // Following fields are not currently used but offload-arch ABI extensions - // may want to access them in future. - err = _dl_hsa_isa_get_info_alt(isa, HSA_ISA_INFO_MACHINE_MODELS, - isa_i.mach_models); - _return_on_err(err); - err = _dl_hsa_isa_get_info_alt(isa, HSA_ISA_INFO_PROFILES, isa_i.profiles); - _return_on_err(err); - err = _dl_hsa_isa_get_info_alt(isa, HSA_ISA_INFO_DEFAULT_FLOAT_ROUNDING_MODES, - isa_i.def_rounding_modes); - _return_on_err(err); - err = _dl_hsa_isa_get_info_alt( - isa, HSA_ISA_INFO_BASE_PROFILE_DEFAULT_FLOAT_ROUNDING_MODES, - isa_i.base_rounding_modes); - _return_on_err(err); - err = _dl_hsa_isa_get_info_alt(isa, HSA_ISA_INFO_FAST_F16_OPERATION, - &isa_i.fast_f16); - _return_on_err(err); - err = _dl_hsa_isa_get_info_alt(isa, HSA_ISA_INFO_WORKGROUP_MAX_DIM, - &isa_i.workgroup_max_dim); - _return_on_err(err); - err = _dl_hsa_isa_get_info_alt(isa, HSA_ISA_INFO_WORKGROUP_MAX_SIZE, - &isa_i.workgroup_max_size); - _return_on_err(err); - err = _dl_hsa_isa_get_info_alt(isa, HSA_ISA_INFO_GRID_MAX_DIM, - &isa_i.grid_max_dim); - _return_on_err(err); - err = _dl_hsa_isa_get_info_alt(isa, HSA_ISA_INFO_GRID_MAX_SIZE, - &isa_i.grid_max_size); - _return_on_err(err); - err = _dl_hsa_isa_get_info_alt(isa, HSA_ISA_INFO_FBARRIER_MAX_SIZE, - &isa_i.fbarrier_max_size); - _return_on_err(err); - AMDGPU_FEATUREs.push_back(isa_i); - return err; -} - -void *_aot_dynload_hsa_runtime() { - - void *dlhandle = nullptr; -#ifndef _WIN32 - // First search in system library paths. Allows user to dynamically - // load desired version of hsa runtime. - dlhandle = dlopen("libhsa-runtime64.so", RTLD_NOW); - - // Return null if hsa runtime is not found in system paths and in - // absolute locations. - if (!dlhandle) - return nullptr; - - // We could use real names of hsa functions but the _dl_ makes it clear - // these are dynamically loaded - *(void **)&_dl_hsa_init = dlsym(dlhandle, "hsa_init"); - *(void **)&_dl_hsa_shut_down = dlsym(dlhandle, "hsa_shut_down"); - *(void **)&_dl_hsa_isa_get_info_alt = dlsym(dlhandle, "hsa_isa_get_info_alt"); - *(void **)&_dl_hsa_agent_get_info = dlsym(dlhandle, "hsa_agent_get_info"); - *(void **)&_dl_hsa_iterate_agents = dlsym(dlhandle, "hsa_iterate_agents"); - *(void **)&_dl_hsa_agent_iterate_isas = - dlsym(dlhandle, "hsa_agent_iterate_isas"); -#endif - return dlhandle; -} - -std::string getAMDGPUCapabilities(uint16_t vid, uint16_t devid, - const std::string &oa) { - std::string amdgpu_capabilities; - offload_arch_requested = oa; - - if (IsAmdDeviceAvailable()) { - BindHsaMethodsAndInitHSA(); - } - - // Make sure that previous calls' results don't interfere - AMDGPU_FEATUREs.clear(); - HSA_AGENTs.clear(); - - std::vector GPUs; - hsa_status_t Status = _dl_hsa_iterate_agents( - [](hsa_agent_t Agent, void *Data) { - hsa_device_type_t DeviceType; - hsa_status_t Status = - _dl_hsa_agent_get_info(Agent, HSA_AGENT_INFO_DEVICE, &DeviceType); - // continue only if device type is GPU - if (Status != HSA_STATUS_SUCCESS || DeviceType != HSA_DEVICE_TYPE_GPU) { - return Status; - } - std::vector *GPUs = - static_cast *>(Data); - char GPUName[64]; - Status = _dl_hsa_agent_get_info(Agent, HSA_AGENT_INFO_NAME, GPUName); - if (Status != HSA_STATUS_SUCCESS) - return Status; - if (GPUName == offload_arch_requested) { - GPUs->push_back(GPUName); - HSA_AGENTs.push_back(Agent); - } - return HSA_STATUS_SUCCESS; - }, - &GPUs); - - if (Status != HSA_STATUS_SUCCESS) { - amdgpu_capabilities.append(" HSAERROR-AGENT_ITERATION"); - return amdgpu_capabilities; - } - if (GPUs.size() == 0) { - amdgpu_capabilities.append("NOT-VISIBLE"); - return amdgpu_capabilities; - } - - // Select first detected HSA agent - // TODO Select the one matching the given PCI ID instead - hsa_agent_t xagent = *HSA_AGENTs.begin(); - Status = _dl_hsa_agent_iterate_isas(xagent, get_isa_info, nullptr); - if (Status == HSA_STATUS_ERROR_INVALID_AGENT) { - amdgpu_capabilities.append(" HSAERROR-INVALID_AGENT"); - return amdgpu_capabilities; - } - - // parse features from field name_str of last amdgpu_features_t found - llvm::StringRef Target(AMDGPU_FEATUREs.rbegin()->name_str); - auto TargetFeatures = Target.split(':'); - auto TripleOrGPU = TargetFeatures.first.rsplit('-'); - auto TargetID = Target.substr(Target.find(TripleOrGPU.second)); - amdgpu_capabilities.append(TargetID.str()); - - // We cannot shutdown hsa or close dlhandle because - // _aot_amd_capabilities could be called multiple times. - - return amdgpu_capabilities; -} - -std::string getAMDGPUCapabilitiesForOffloadarch(const std::string &uuid) { - std::string amdgpu_capabilities; - - if (HSA_AGENTs.empty()) - return amdgpu_capabilities; - - int isa_number = 0; - - for (auto Agent : HSA_AGENTs) { - - char agent_uuid[24]; - hsa_status_t Stat = _dl_hsa_agent_get_info( - Agent, (hsa_agent_info_t)HSA_AMD_AGENT_INFO_UUID, &agent_uuid); - - if (Stat != HSA_STATUS_SUCCESS) { - amdgpu_capabilities = "HSA_AGENT_GET_INFO_ERROR\n"; - return amdgpu_capabilities; - } - - if (uuid.compare(agent_uuid) == 0) { - Stat = _dl_hsa_agent_iterate_isas(Agent, get_isa_info, &isa_number); - - if (Stat != HSA_STATUS_SUCCESS) { - amdgpu_capabilities = "HSA_AGENT_ITERATE_ISAS_ERROR\n"; - return amdgpu_capabilities; - } - - llvm::StringRef TargetFeatures(AMDGPU_FEATUREs.back().name_str); - auto Features = TargetFeatures.split(":"); - auto Triple = Features.first.rsplit('-'); - amdgpu_capabilities.append(Triple.second.data()); - break; - } - } - return amdgpu_capabilities; -} - -bool IsAmdDeviceAvailable() { - // Check status of ROCk - auto InitstateOrError = - llvm::MemoryBuffer::getFile("/sys/module/amdgpu/initstate"); - if (std::error_code EC = InitstateOrError.getError()) { - fprintf(stderr, "unable to open device!\n"); - return false; - } - - llvm::StringRef FileContent = InitstateOrError.get()->getBuffer(); - - if (FileContent.find_insensitive("live") != llvm::StringRef::npos) { - return true; - } - - fprintf(stderr, "No AMD Device(s) found!\n"); - return false; -} - -void BindHsaMethodsAndInitHSA() { - - if (first_call) { - void *dlhandle = _aot_dynload_hsa_runtime(); - if (!dlhandle) { - fprintf(stderr, " HSAERROR - DIDN'T FIND RUNTIME\n"); - abort(); - } - - assert(_dl_hsa_init != nullptr); - hsa_status_t Status = _dl_hsa_init(); - if (Status != HSA_STATUS_SUCCESS) { - fprintf(stderr, " HSAERROR - INITIALIZATION FAILED\n"); - abort(); - } - first_call = false; - } -} - -std::vector> runHsaDetection() { - std::vector> OffloadingGpus; - HSA_AGENTs.clear(); - - auto Err = _dl_hsa_iterate_agents( - [](hsa_agent_t Agent, void *GpuData) { - hsa_device_type_t DeviceType; - hsa_status_t Stat = - _dl_hsa_agent_get_info(Agent, HSA_AGENT_INFO_DEVICE, &DeviceType); - if (Stat != HSA_STATUS_SUCCESS) - return Stat; - - std::vector> *GpuVector = - static_cast> *>( - GpuData); - - if (DeviceType == HSA_DEVICE_TYPE_GPU) { - hsa_agent_feature_t Features; - Stat = - _dl_hsa_agent_get_info(Agent, HSA_AGENT_INFO_FEATURE, &Features); - if (Stat != HSA_STATUS_SUCCESS) - return Stat; - - if (Features & HSA_AGENT_FEATURE_KERNEL_DISPATCH) { - - char hsa_name[64]; - Stat = _dl_hsa_agent_get_info(Agent, HSA_AGENT_INFO_NAME, hsa_name); - if (Stat != HSA_STATUS_SUCCESS) - return Stat; - - char uuid[24]; - Stat = _dl_hsa_agent_get_info( - Agent, (hsa_agent_info_t)HSA_AMD_AGENT_INFO_UUID, &uuid); - if (Stat != HSA_STATUS_SUCCESS) - return Stat; - - GpuVector->emplace_back(hsa_name, uuid); - HSA_AGENTs.push_back(Agent); - } - } - return HSA_STATUS_SUCCESS; - }, - &OffloadingGpus); - - if (Err != HSA_STATUS_SUCCESS) - OffloadingGpus.emplace_back("HSA_ITERATE_AGENT_ERRROR\n", " "); - - return OffloadingGpus; -} diff --git a/llvm/lib/OffloadArch/generated_offload_arch.h b/llvm/lib/OffloadArch/generated_offload_arch.h deleted file mode 100644 index 036ac481248906..00000000000000 --- a/llvm/lib/OffloadArch/generated_offload_arch.h +++ /dev/null @@ -1,462 +0,0 @@ -// This file is generated by make_generated_offload_arch_h.sh -// It is only included by OffloadArch.cpp -#include -#include -typedef enum { - AOT_GFX1010, - AOT_GFX1011, - AOT_GFX1012, - AOT_GFX1013, - AOT_GFX1030, - AOT_GFX1031, - AOT_GFX1032, - AOT_GFX1033, - AOT_GFX1034, - AOT_GFX1035, - AOT_GFX1036, - AOT_GFX1100, - AOT_GFX1101, - AOT_GFX1102, - AOT_GFX1103, - AOT_GFX700, - AOT_GFX701, - AOT_GFX801, - AOT_GFX802, - AOT_GFX803, - AOT_GFX900, - AOT_GFX902, - AOT_GFX904, - AOT_GFX906, - AOT_GFX908, - AOT_GFX90A, - AOT_GFX90C, - AOT_SM_30, - AOT_SM_35, - AOT_SM_50, - AOT_SM_60, - AOT_SM_61, - AOT_SM_70, -} AOT_OFFLOADARCH; -typedef enum { - AOT_CN_ALDEBARAN, - AOT_CN_ARCTURUS, - AOT_CN_BEIGE_GOBY, - AOT_CN_CARRIZO, - AOT_CN_CYAN_SKILLFISH, - AOT_CN_DIMGREY_CAVEFISH, - AOT_CN_FIJI, - AOT_CN_HAWAII, - AOT_CN_HOTPINK_BONEFISH, - AOT_CN_NAVI10, - AOT_CN_NAVI12, - AOT_CN_NAVI14, - AOT_CN_NAVY_FLOUNDER, - AOT_CN_PINK_SARDINE, - AOT_CN_PLUM_BONITO, - AOT_CN_POLARIS10, - AOT_CN_POLARIS11, - AOT_CN_POLARIS12, - AOT_CN_RAPHAEL, - AOT_CN_RAVEN, - AOT_CN_REMBRANDT, - AOT_CN_RENOIR, - AOT_CN_SIENNA_CICHLID, - AOT_CN_SPECTRE, - AOT_CN_SPOOKY, - AOT_CN_TONGA, - AOT_CN_VANGOGH, - AOT_CN_VEGA10, - AOT_CN_VEGA12, - AOT_CN_VEGA20, - AOT_CN_VEGAM, - AOT_CN_WHEAT_NAS, - AOT_CN_YELLOW_CARP, - AOT_CN_K4000, - AOT_CN_K4200, - AOT_CN_GTX750, - AOT_CN_GTX960M, - AOT_CN_GTX980, - AOT_CN_GTX1050, - AOT_CN_GTX1060, - AOT_CN_GTX1080, - AOT_CN_GT730, - AOT_CN_P100, - AOT_CN_GV100, - AOT_CN_V100, -} AOT_CODENAME; - -struct AOT_CODENAME_ID_TO_STRING{ - AOT_CODENAME codename_id; - const char* codename; -}; - -struct AOT_OFFLOADARCH_TO_STRING{ - AOT_OFFLOADARCH offloadarch_id; - const char* offloadarch; -}; - -struct AOT_OFFLOADARCH_TO_CODENAME_ENTRY{ - const char* offloadarch; - const char* codename; -}; - -struct AOT_TABLE_ENTRY{ - uint16_t vendorid; - uint16_t devid; - AOT_CODENAME codename_id; - AOT_OFFLOADARCH offloadarch_id; -}; -extern const AOT_CODENAME_ID_TO_STRING AOT_CODENAMES[] = { - {AOT_CN_ALDEBARAN, "ALDEBARAN"}, - {AOT_CN_ARCTURUS, "ARCTURUS"}, - {AOT_CN_BEIGE_GOBY, "BEIGE_GOBY"}, - {AOT_CN_CARRIZO, "CARRIZO"}, - {AOT_CN_CYAN_SKILLFISH, "CYAN_SKILLFISH"}, - {AOT_CN_DIMGREY_CAVEFISH, "DIMGREY_CAVEFISH"}, - {AOT_CN_FIJI, "FIJI"}, - {AOT_CN_HAWAII, "HAWAII"}, - {AOT_CN_HOTPINK_BONEFISH, "HOTPINK_BONEFISH"}, - {AOT_CN_NAVI10, "NAVI10"}, - {AOT_CN_NAVI12, "NAVI12"}, - {AOT_CN_NAVI14, "NAVI14"}, - {AOT_CN_NAVY_FLOUNDER, "NAVY_FLOUNDER"}, - {AOT_CN_PINK_SARDINE, "PINK_SARDINE"}, - {AOT_CN_PLUM_BONITO, "PLUM_BONITO"}, - {AOT_CN_POLARIS10, "POLARIS10"}, - {AOT_CN_POLARIS11, "POLARIS11"}, - {AOT_CN_POLARIS12, "POLARIS12"}, - {AOT_CN_RAPHAEL, "RAPHAEL"}, - {AOT_CN_RAVEN, "RAVEN"}, - {AOT_CN_REMBRANDT, "REMBRANDT"}, - {AOT_CN_RENOIR, "RENOIR"}, - {AOT_CN_SIENNA_CICHLID, "SIENNA_CICHLID"}, - {AOT_CN_SPECTRE, "SPECTRE"}, - {AOT_CN_SPOOKY, "SPOOKY"}, - {AOT_CN_TONGA, "TONGA"}, - {AOT_CN_VANGOGH, "VANGOGH"}, - {AOT_CN_VEGA10, "VEGA10"}, - {AOT_CN_VEGA12, "VEGA12"}, - {AOT_CN_VEGA20, "VEGA20"}, - {AOT_CN_VEGAM, "VEGAM"}, - {AOT_CN_WHEAT_NAS, "WHEAT_NAS"}, - {AOT_CN_YELLOW_CARP, "YELLOW_CARP"}, - {AOT_CN_K4000, "k4000"}, - {AOT_CN_K4200, "k4200"}, - {AOT_CN_GTX750, "gtx750"}, - {AOT_CN_GTX960M, "gtx960m"}, - {AOT_CN_GTX980, "gtx980"}, - {AOT_CN_GTX1050, "gtx1050"}, - {AOT_CN_GTX1060, "gtx1060"}, - {AOT_CN_GTX1080, "gtx1080"}, - {AOT_CN_GT730, "gt730"}, - {AOT_CN_P100, "p100"}, - {AOT_CN_GV100, "gv100"}, - {AOT_CN_V100, "v100"}, -}; -extern const AOT_OFFLOADARCH_TO_STRING AOT_OFFLOADARCHS[] = { - {AOT_GFX1010, "gfx1010"}, - {AOT_GFX1011, "gfx1011"}, - {AOT_GFX1012, "gfx1012"}, - {AOT_GFX1013, "gfx1013"}, - {AOT_GFX1030, "gfx1030"}, - {AOT_GFX1031, "gfx1031"}, - {AOT_GFX1032, "gfx1032"}, - {AOT_GFX1033, "gfx1033"}, - {AOT_GFX1034, "gfx1034"}, - {AOT_GFX1035, "gfx1035"}, - {AOT_GFX1036, "gfx1036"}, - {AOT_GFX1100, "gfx1100"}, - {AOT_GFX1101, "gfx1101"}, - {AOT_GFX1102, "gfx1102"}, - {AOT_GFX1103, "gfx1103"}, - {AOT_GFX700, "gfx700"}, - {AOT_GFX701, "gfx701"}, - {AOT_GFX801, "gfx801"}, - {AOT_GFX802, "gfx802"}, - {AOT_GFX803, "gfx803"}, - {AOT_GFX900, "gfx900"}, - {AOT_GFX902, "gfx902"}, - {AOT_GFX904, "gfx904"}, - {AOT_GFX906, "gfx906"}, - {AOT_GFX908, "gfx908"}, - {AOT_GFX90A, "gfx90a"}, - {AOT_GFX90C, "gfx90c"}, - {AOT_SM_30, "sm_30"}, - {AOT_SM_35, "sm_35"}, - {AOT_SM_50, "sm_50"}, - {AOT_SM_60, "sm_60"}, - {AOT_SM_61, "sm_61"}, - {AOT_SM_70, "sm_70"}, -}; -extern const AOT_OFFLOADARCH_TO_CODENAME_ENTRY AOT_AMD_OFFLOADARCH_TO_CODENAME_TABLE[] = { -{ "gfx1010", "NAVI10" }, -{ "gfx1011", "NAVI12" }, -{ "gfx1012", "NAVI14" }, -{ "gfx1013", "CYAN_SKILLFISH" }, -{ "gfx1030", "SIENNA_CICHLID" }, -{ "gfx1031", "NAVY_FLOUNDER" }, -{ "gfx1032", "DIMGREY_CAVEFISH" }, -{ "gfx1033", "VANGOGH" }, -{ "gfx1034", "BEIGE_GOBY" }, -{ "gfx1035", "REMBRANDT" }, -{ "gfx1036", "RAPHAEL" }, -{ "gfx1100", "PLUM_BONITO" }, -{ "gfx1101", "WHEAT_NAS" }, -{ "gfx1102", "HOTPINK_BONEFISH" }, -{ "gfx1103", "PINK_SARDINE" }, -{ "gfx700", "SPECTRE" }, -{ "gfx701", "HAWAII" }, -{ "gfx801", "CARRIZO" }, -{ "gfx802", "TONGA" }, -{ "gfx803", "FIJI" }, -{ "gfx900", "VEGA10" }, -{ "gfx902", "RAVEN" }, -{ "gfx904", "VEGA12" }, -{ "gfx906", "VEGA20" }, -{ "gfx908", "ARCTURUS" }, -{ "gfx90a", "ALDEBARAN" }, -{ "gfx90c", "RENOIR" }, -}; -extern const AOT_TABLE_ENTRY AOT_TABLE[] = { -{ 0x1002, 0x1304, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x1305, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x1306, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x1307, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x1309, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x130A, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x130B, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x130C, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x130D, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x130E, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x130F, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x1310, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x1311, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x1312, AOT_CN_SPOOKY, AOT_GFX700 }, -{ 0x1002, 0x1313, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x1315, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x1316, AOT_CN_SPOOKY, AOT_GFX700 }, -{ 0x1002, 0x1317, AOT_CN_SPOOKY, AOT_GFX700 }, -{ 0x1002, 0x1318, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x131B, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x131C, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x131D, AOT_CN_SPECTRE, AOT_GFX700 }, -{ 0x1002, 0x13F9, AOT_CN_CYAN_SKILLFISH, AOT_GFX1013 }, -{ 0x1002, 0x13FA, AOT_CN_CYAN_SKILLFISH, AOT_GFX1013 }, -{ 0x1002, 0x13FB, AOT_CN_CYAN_SKILLFISH, AOT_GFX1013 }, -{ 0x1002, 0x13FC, AOT_CN_CYAN_SKILLFISH, AOT_GFX1013 }, -{ 0x1002, 0x13FE, AOT_CN_CYAN_SKILLFISH, AOT_GFX1013 }, -{ 0x1002, 0x15D8, AOT_CN_RAVEN, AOT_GFX902 }, -{ 0x1002, 0x15DD, AOT_CN_RAVEN, AOT_GFX902 }, -{ 0x1002, 0x15E7, AOT_CN_RENOIR, AOT_GFX90C }, -{ 0x1002, 0x1636, AOT_CN_RENOIR, AOT_GFX90C }, -{ 0x1002, 0x1638, AOT_CN_RENOIR, AOT_GFX90C }, -{ 0x1002, 0x163F, AOT_CN_VANGOGH, AOT_GFX1033 }, -{ 0x1002, 0x164C, AOT_CN_RENOIR, AOT_GFX90C }, -{ 0x1002, 0x164d, AOT_CN_REMBRANDT, AOT_GFX1035 }, -{ 0x1002, 0x164D, AOT_CN_YELLOW_CARP, AOT_GFX1035 }, -{ 0x1002, 0x164e, AOT_CN_RAPHAEL, AOT_GFX1036 }, -{ 0x1002, 0x1681, AOT_CN_YELLOW_CARP, AOT_GFX1035 }, -{ 0x1002, 0x66A0, AOT_CN_VEGA20, AOT_GFX906 }, -{ 0x1002, 0x66A1, AOT_CN_VEGA20, AOT_GFX906 }, -{ 0x1002, 0x66A2, AOT_CN_VEGA20, AOT_GFX906 }, -{ 0x1002, 0x66A3, AOT_CN_VEGA20, AOT_GFX906 }, -{ 0x1002, 0x66A4, AOT_CN_VEGA20, AOT_GFX906 }, -{ 0x1002, 0x66A7, AOT_CN_VEGA20, AOT_GFX906 }, -{ 0x1002, 0x66AF, AOT_CN_VEGA20, AOT_GFX906 }, -{ 0x1002, 0x67A0, AOT_CN_HAWAII, AOT_GFX701 }, -{ 0x1002, 0x67A1, AOT_CN_HAWAII, AOT_GFX701 }, -{ 0x1002, 0x67A2, AOT_CN_HAWAII, AOT_GFX701 }, -{ 0x1002, 0x67A8, AOT_CN_HAWAII, AOT_GFX701 }, -{ 0x1002, 0x67A9, AOT_CN_HAWAII, AOT_GFX701 }, -{ 0x1002, 0x67AA, AOT_CN_HAWAII, AOT_GFX701 }, -{ 0x1002, 0x67B0, AOT_CN_HAWAII, AOT_GFX701 }, -{ 0x1002, 0x67B1, AOT_CN_HAWAII, AOT_GFX701 }, -{ 0x1002, 0x67B8, AOT_CN_HAWAII, AOT_GFX701 }, -{ 0x1002, 0x67B9, AOT_CN_HAWAII, AOT_GFX701 }, -{ 0x1002, 0x67BA, AOT_CN_HAWAII, AOT_GFX701 }, -{ 0x1002, 0x67BE, AOT_CN_HAWAII, AOT_GFX701 }, -{ 0x1002, 0x67C0, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x67C1, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x67C2, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x67C4, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x67C7, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x67C8, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x67C9, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x67CA, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x67CC, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x67CF, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x67D0, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x67DF, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x67E0, AOT_CN_POLARIS11, AOT_GFX803 }, -{ 0x1002, 0x67E1, AOT_CN_POLARIS11, AOT_GFX803 }, -{ 0x1002, 0x67E3, AOT_CN_POLARIS11, AOT_GFX803 }, -{ 0x1002, 0x67E7, AOT_CN_POLARIS11, AOT_GFX803 }, -{ 0x1002, 0x67E8, AOT_CN_POLARIS11, AOT_GFX803 }, -{ 0x1002, 0x67E9, AOT_CN_POLARIS11, AOT_GFX803 }, -{ 0x1002, 0x67EB, AOT_CN_POLARIS11, AOT_GFX803 }, -{ 0x1002, 0x67EF, AOT_CN_POLARIS11, AOT_GFX803 }, -{ 0x1002, 0x67FF, AOT_CN_POLARIS11, AOT_GFX803 }, -{ 0x1002, 0x6860, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x6861, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x6862, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x6863, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x6864, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x6867, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x6868, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x6869, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x686A, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x686B, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x686C, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x686D, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x686E, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x687F, AOT_CN_VEGA10, AOT_GFX900 }, -{ 0x1002, 0x6920, AOT_CN_TONGA, AOT_GFX802 }, -{ 0x1002, 0x6921, AOT_CN_TONGA, AOT_GFX802 }, -{ 0x1002, 0x6928, AOT_CN_TONGA, AOT_GFX802 }, -{ 0x1002, 0x6929, AOT_CN_TONGA, AOT_GFX802 }, -{ 0x1002, 0x692B, AOT_CN_TONGA, AOT_GFX802 }, -{ 0x1002, 0x692F, AOT_CN_TONGA, AOT_GFX802 }, -{ 0x1002, 0x6930, AOT_CN_TONGA, AOT_GFX802 }, -{ 0x1002, 0x6938, AOT_CN_TONGA, AOT_GFX802 }, -{ 0x1002, 0x6939, AOT_CN_TONGA, AOT_GFX802 }, -{ 0x1002, 0x694C, AOT_CN_VEGAM, AOT_GFX803 }, -{ 0x1002, 0x694E, AOT_CN_VEGAM, AOT_GFX803 }, -{ 0x1002, 0x694F, AOT_CN_VEGAM, AOT_GFX803 }, -{ 0x1002, 0x6980, AOT_CN_POLARIS12, AOT_GFX803 }, -{ 0x1002, 0x6981, AOT_CN_POLARIS12, AOT_GFX803 }, -{ 0x1002, 0x6985, AOT_CN_POLARIS12, AOT_GFX803 }, -{ 0x1002, 0x6986, AOT_CN_POLARIS12, AOT_GFX803 }, -{ 0x1002, 0x6987, AOT_CN_POLARIS12, AOT_GFX803 }, -{ 0x1002, 0x6995, AOT_CN_POLARIS12, AOT_GFX803 }, -{ 0x1002, 0x6997, AOT_CN_POLARIS12, AOT_GFX803 }, -{ 0x1002, 0x699F, AOT_CN_POLARIS12, AOT_GFX803 }, -{ 0x1002, 0x69A0, AOT_CN_VEGA12, AOT_GFX904 }, -{ 0x1002, 0x69A1, AOT_CN_VEGA12, AOT_GFX904 }, -{ 0x1002, 0x69A2, AOT_CN_VEGA12, AOT_GFX904 }, -{ 0x1002, 0x69A3, AOT_CN_VEGA12, AOT_GFX904 }, -{ 0x1002, 0x69Af, AOT_CN_VEGA12, AOT_GFX904 }, -{ 0x1002, 0x6FDF, AOT_CN_POLARIS10, AOT_GFX803 }, -{ 0x1002, 0x7300, AOT_CN_FIJI, AOT_GFX803 }, -{ 0x1002, 0x730F, AOT_CN_FIJI, AOT_GFX803 }, -{ 0x1002, 0x7310, AOT_CN_NAVI10, AOT_GFX1010 }, -{ 0x1002, 0x7312, AOT_CN_NAVI10, AOT_GFX1010 }, -{ 0x1002, 0x7318, AOT_CN_NAVI10, AOT_GFX1010 }, -{ 0x1002, 0x731A, AOT_CN_NAVI10, AOT_GFX1010 }, -{ 0x1002, 0x731E, AOT_CN_NAVI10, AOT_GFX1010 }, -{ 0x1002, 0x731F, AOT_CN_NAVI10, AOT_GFX1010 }, -{ 0x1002, 0x7340, AOT_CN_NAVI14, AOT_GFX1012 }, -{ 0x1002, 0x7341, AOT_CN_NAVI14, AOT_GFX1012 }, -{ 0x1002, 0x7347, AOT_CN_NAVI14, AOT_GFX1012 }, -{ 0x1002, 0x7360, AOT_CN_NAVI12, AOT_GFX1011 }, -{ 0x1002, 0x7362, AOT_CN_NAVI12, AOT_GFX1011 }, -{ 0x1002, 0x7388, AOT_CN_ARCTURUS, AOT_GFX908 }, -{ 0x1002, 0x738C, AOT_CN_ARCTURUS, AOT_GFX908 }, -{ 0x1002, 0x738E, AOT_CN_ARCTURUS, AOT_GFX908 }, -{ 0x1002, 0x7390, AOT_CN_ARCTURUS, AOT_GFX908 }, -{ 0x1002, 0x73A0, AOT_CN_SIENNA_CICHLID, AOT_GFX1030 }, -{ 0x1002, 0x73A1, AOT_CN_SIENNA_CICHLID, AOT_GFX1030 }, -{ 0x1002, 0x73A2, AOT_CN_SIENNA_CICHLID, AOT_GFX1030 }, -{ 0x1002, 0x73A3, AOT_CN_SIENNA_CICHLID, AOT_GFX1030 }, -{ 0x1002, 0x73A5, AOT_CN_SIENNA_CICHLID, AOT_GFX1030 }, -{ 0x1002, 0x73A8, AOT_CN_SIENNA_CICHLID, AOT_GFX1030 }, -{ 0x1002, 0x73A9, AOT_CN_SIENNA_CICHLID, AOT_GFX1030 }, -{ 0x1002, 0x73AB, AOT_CN_SIENNA_CICHLID, AOT_GFX1030 }, -{ 0x1002, 0x73AC, AOT_CN_SIENNA_CICHLID, AOT_GFX1030 }, -{ 0x1002, 0x73AD, AOT_CN_SIENNA_CICHLID, AOT_GFX1030 }, -{ 0x1002, 0x73AE, AOT_CN_SIENNA_CICHLID, AOT_GFX1030 }, -{ 0x1002, 0x73BF, AOT_CN_SIENNA_CICHLID, AOT_GFX1030 }, -{ 0x1002, 0x73C0, AOT_CN_NAVY_FLOUNDER, AOT_GFX1031 }, -{ 0x1002, 0x73C1, AOT_CN_NAVY_FLOUNDER, AOT_GFX1031 }, -{ 0x1002, 0x73C3, AOT_CN_NAVY_FLOUNDER, AOT_GFX1031 }, -{ 0x1002, 0x73DA, AOT_CN_NAVY_FLOUNDER, AOT_GFX1031 }, -{ 0x1002, 0x73DB, AOT_CN_NAVY_FLOUNDER, AOT_GFX1031 }, -{ 0x1002, 0x73DC, AOT_CN_NAVY_FLOUNDER, AOT_GFX1031 }, -{ 0x1002, 0x73DD, AOT_CN_NAVY_FLOUNDER, AOT_GFX1031 }, -{ 0x1002, 0x73DE, AOT_CN_NAVY_FLOUNDER, AOT_GFX1031 }, -{ 0x1002, 0x73DF, AOT_CN_NAVY_FLOUNDER, AOT_GFX1031 }, -{ 0x1002, 0x73E0, AOT_CN_DIMGREY_CAVEFISH, AOT_GFX1032 }, -{ 0x1002, 0x73E1, AOT_CN_DIMGREY_CAVEFISH, AOT_GFX1032 }, -{ 0x1002, 0x73E2, AOT_CN_DIMGREY_CAVEFISH, AOT_GFX1032 }, -{ 0x1002, 0x73E8, AOT_CN_DIMGREY_CAVEFISH, AOT_GFX1032 }, -{ 0x1002, 0x73E9, AOT_CN_DIMGREY_CAVEFISH, AOT_GFX1032 }, -{ 0x1002, 0x73EA, AOT_CN_DIMGREY_CAVEFISH, AOT_GFX1032 }, -{ 0x1002, 0x73EB, AOT_CN_DIMGREY_CAVEFISH, AOT_GFX1032 }, -{ 0x1002, 0x73EC, AOT_CN_DIMGREY_CAVEFISH, AOT_GFX1032 }, -{ 0x1002, 0x73ED, AOT_CN_DIMGREY_CAVEFISH, AOT_GFX1032 }, -{ 0x1002, 0x73EF, AOT_CN_DIMGREY_CAVEFISH, AOT_GFX1032 }, -{ 0x1002, 0x73FF, AOT_CN_DIMGREY_CAVEFISH, AOT_GFX1032 }, -{ 0x1002, 0x7408, AOT_CN_ALDEBARAN, AOT_GFX90A }, -{ 0x1002, 0x740C, AOT_CN_ALDEBARAN, AOT_GFX90A }, -{ 0x1002, 0x740F, AOT_CN_ALDEBARAN, AOT_GFX90A }, -{ 0x1002, 0x7410, AOT_CN_ALDEBARAN, AOT_GFX90A }, -{ 0x1002, 0x7420, AOT_CN_BEIGE_GOBY, AOT_GFX1034 }, -{ 0x1002, 0x7421, AOT_CN_BEIGE_GOBY, AOT_GFX1034 }, -{ 0x1002, 0x7422, AOT_CN_BEIGE_GOBY, AOT_GFX1034 }, -{ 0x1002, 0x7423, AOT_CN_BEIGE_GOBY, AOT_GFX1034 }, -{ 0x1002, 0x743F, AOT_CN_BEIGE_GOBY, AOT_GFX1034 }, -{ 0x1002, 0x744C, AOT_CN_PLUM_BONITO, AOT_GFX1100 }, -{ 0x1002, 0x9870, AOT_CN_CARRIZO, AOT_GFX801 }, -{ 0x1002, 0x9874, AOT_CN_CARRIZO, AOT_GFX801 }, -{ 0x1002, 0x9875, AOT_CN_CARRIZO, AOT_GFX801 }, -{ 0x1002, 0x9876, AOT_CN_CARRIZO, AOT_GFX801 }, -{ 0x1002, 0x9877, AOT_CN_CARRIZO, AOT_GFX801 }, -{ 0x10de, 0x0f02, AOT_CN_GT730, AOT_SM_35 }, -{ 0x10de, 0x0f06, AOT_CN_GT730, AOT_SM_35 }, -{ 0x10de, 0x0fc9, AOT_CN_GT730, AOT_SM_35 }, -{ 0x10de, 0x11b4, AOT_CN_K4200, AOT_SM_30 }, -{ 0x10de, 0x11c7, AOT_CN_GTX750, AOT_SM_50 }, -{ 0x10de, 0x11fa, AOT_CN_K4000, AOT_SM_30 }, -{ 0x10de, 0x1287, AOT_CN_GT730, AOT_SM_35 }, -{ 0x10de, 0x1380, AOT_CN_GTX750, AOT_SM_50 }, -{ 0x10de, 0x1381, AOT_CN_GTX750, AOT_SM_50 }, -{ 0x10de, 0x139b, AOT_CN_GTX960M, AOT_SM_50 }, -{ 0x10de, 0x139b, AOT_CN_GTX960M, AOT_SM_50 }, -{ 0x10de, 0x139b, AOT_CN_GTX960M, AOT_SM_50 }, -{ 0x10de, 0x139d, AOT_CN_GTX750, AOT_SM_50 }, -{ 0x10de, 0x13c0, AOT_CN_GTX980, AOT_SM_35 }, -{ 0x10de, 0x13c0, AOT_CN_GTX980, AOT_SM_35 }, -{ 0x10de, 0x13da, AOT_CN_GTX980, AOT_SM_35 }, -{ 0x10de, 0x13e7, AOT_CN_GTX980, AOT_SM_35 }, -{ 0x10de, 0x1407, AOT_CN_GTX750, AOT_SM_50 }, -{ 0x10de, 0x15f7, AOT_CN_P100, AOT_SM_60 }, -{ 0x10de, 0x15f8, AOT_CN_P100, AOT_SM_60 }, -{ 0x10de, 0x15f9, AOT_CN_P100, AOT_SM_60 }, -{ 0x10de, 0x161a, AOT_CN_GTX980, AOT_SM_35 }, -{ 0x10de, 0x17c8, AOT_CN_GTX980, AOT_SM_35 }, -{ 0x10de, 0x1b06, AOT_CN_GTX1080, AOT_SM_61 }, -{ 0x10de, 0x1b80, AOT_CN_GTX1080, AOT_SM_61 }, -{ 0x10de, 0x1b83, AOT_CN_GTX1060, AOT_SM_61 }, -{ 0x10de, 0x1b84, AOT_CN_GTX1060, AOT_SM_61 }, -{ 0x10de, 0x1ba0, AOT_CN_GTX1080, AOT_SM_61 }, -{ 0x10de, 0x1be0, AOT_CN_GTX1080, AOT_SM_61 }, -{ 0x10de, 0x1be0, AOT_CN_GTX1080, AOT_SM_61 }, -{ 0x10de, 0x1be0, AOT_CN_GTX1080, AOT_SM_61 }, -{ 0x10de, 0x1c02, AOT_CN_GTX1060, AOT_SM_61 }, -{ 0x10de, 0x1c03, AOT_CN_GTX1060, AOT_SM_61 }, -{ 0x10de, 0x1c04, AOT_CN_GTX1060, AOT_SM_61 }, -{ 0x10de, 0x1c06, AOT_CN_GTX1060, AOT_SM_61 }, -{ 0x10de, 0x1c20, AOT_CN_GTX1060, AOT_SM_61 }, -{ 0x10de, 0x1c20, AOT_CN_GTX1060, AOT_SM_61 }, -{ 0x10de, 0x1c21, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1c22, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1c60, AOT_CN_GTX1060, AOT_SM_61 }, -{ 0x10de, 0x1c60, AOT_CN_GTX1060, AOT_SM_61 }, -{ 0x10de, 0x1c61, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1c62, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1c81, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1c82, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1c83, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1c8c, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1c8d, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1c8f, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1c92, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1ccc, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1ccd, AOT_CN_GTX1050, AOT_SM_61 }, -{ 0x10de, 0x1db1, AOT_CN_V100, AOT_SM_70 }, -{ 0x10de, 0x1db4, AOT_CN_V100, AOT_SM_70 }, -{ 0x10de, 0x1db5, AOT_CN_V100, AOT_SM_70 }, -{ 0x10de, 0x1db6, AOT_CN_V100, AOT_SM_70 }, -{ 0x10de, 0x1db7, AOT_CN_V100, AOT_SM_70 }, -{ 0x10de, 0x1dba, AOT_CN_GV100, AOT_SM_70 }, -{ 0x10de, 0x1dba, AOT_CN_GV100, AOT_SM_70 }, -}; diff --git a/llvm/lib/OffloadArch/make_generated_offload_arch_h.sh b/llvm/lib/OffloadArch/make_generated_offload_arch_h.sh deleted file mode 100755 index 9704b02ef5c58e..00000000000000 --- a/llvm/lib/OffloadArch/make_generated_offload_arch_h.sh +++ /dev/null @@ -1,201 +0,0 @@ -#!/usr/bin/env bash -# -# make_generated_offload_arch_h.sh - Create the fle generated_offload_arch.h -# -# Written by Greg Rodgers Gregory.Rodgers@amd.com -# Copyright (c) 2021 ADVANCED MICRO DEVICES, INC. -# -# AMD is granting you permission to use this software and documentation (if any) (collectively, the -# Materials) pursuant to the terms and conditions of the Software License Agreement included with the -# Materials. If you do not have a copy of the Software License Agreement, contact your AMD -# representative for a copy. -# -# You agree that you will not reverse engineer or decompile the Materials, in whole or in part, except for -# example code which is provided in source code form and as allowed by applicable law. -# -# WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY -# KIND. AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT -# LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -# PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN UNINTERRUPTED OR ERROR- -# FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR COURSE OF USAGE. THE ENTIRE RISK -# ASSOCIATED WITH THE USE OF THE SOFTWARE IS ASSUMED BY YOU. Some jurisdictions do not -# allow the exclusion of implied warranties, so the above exclusion may not apply to You. -# -# LIMITATION OF LIABILITY AND INDEMNIFICATION: AMD AND ITS LICENSORS WILL NOT, -# UNDER ANY CIRCUMSTANCES BE LIABLE TO YOU FOR ANY PUNITIVE, DIRECT, INCIDENTAL, -# INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE SOFTWARE OR THIS -# AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH -# DAMAGES. In no event shall AMD's total liability to You for all damages, losses, and -# causes of action (whether in contract, tort (including negligence) or otherwise) -# exceed the amount of $100 USD. You agree to defend, indemnify and hold harmless -# AMD and its licensors, and any of their directors, officers, employees, affiliates or -# agents from and against any and all loss, damage, liability and other expenses -# (including reasonable attorneys' fees), resulting from Your use of the Software or -# violation of the terms and conditions of this Agreement. -# -# U.S. GOVERNMENT RESTRICTED RIGHTS: The Materials are provided with "RESTRICTED RIGHTS." -# Use, duplication, or disclosure by the Government is subject to the restrictions as set -# forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or its successor. Use of the -# Materials by the Government constitutes acknowledgement of AMD's proprietary rights in them. -# -# EXPORT RESTRICTIONS: The Materials may be subject to export restrictions as stated in the -# Software License Agreement. -# - -INPUTDIR=$1 -if [ -z $INPUTDIR ] ; then - INPUTDIR=$PWD -fi - -# These are the input files -AOT_PCIID2CODENAME="$INPUTDIR/amdgpu/pciid2codename.txt $INPUTDIR/nvidia/pciid2codename.txt" -AOT_CODENAME2OFFLOADARCH="$INPUTDIR/amdgpu/codename2offloadarch.txt $INPUTDIR/nvidia/codename2offloadarch.txt" -AOT_CODENAME2OFFLOADARCH_AMD="$INPUTDIR/amdgpu/codename2offloadarch.txt" - -# This is the output file which is always written to current dir -AOT_DOTH_FILE="$PWD/generated_offload_arch.h" - -function get_offloadarch_id_from_codename -{ - _codename=$1 - _entry=`grep -m1 "^$_codename" $AOT_CODENAME2OFFLOADARCH` - if [ $? == 0 ] ; then - _offloadarchid=`echo $_entry | awk '{print $2}'` - else - _offloadarchid="$_codename" - fi - echo $_offloadarchid -} - -function write_AOT_OFFLOADARCH() -{ - echo "typedef enum {" >> $AOT_DOTH_FILE - cat $AOT_CODENAME2OFFLOADARCH | cut -d" " -f2 | sort -u > $aot_tmpfile - while read -r line ; do - echo " AOT_${line^^}," >> $AOT_DOTH_FILE - done < $aot_tmpfile - echo "} AOT_OFFLOADARCH;" >> $AOT_DOTH_FILE -} - -function write_AOT_CODENAME() -{ - echo "typedef enum {" >> $AOT_DOTH_FILE - cat $AOT_CODENAME2OFFLOADARCH | while read -r line ; do - codename=`echo $line | cut -d" " -f1` - echo " AOT_CN_${codename^^}," >> $AOT_DOTH_FILE - done - echo "} AOT_CODENAME;" >> $AOT_DOTH_FILE -} -function write_AOT_CODENAMEID_TO_STRING() -{ - echo "extern const AOT_CODENAME_ID_TO_STRING AOT_CODENAMES[] = {" >>$AOT_DOTH_FILE - cat $AOT_CODENAME2OFFLOADARCH | while read -r line ; do - codename=`echo $line | cut -d" " -f1` - echo " {AOT_CN_${codename^^}, \"${codename}\"}," >> $AOT_DOTH_FILE - done - echo "};" >> $AOT_DOTH_FILE -} -function write_AOT_OFFLOADARCH_TO_STRING() -{ - echo "extern const AOT_OFFLOADARCH_TO_STRING AOT_OFFLOADARCHS[] = {" >>$AOT_DOTH_FILE - cat $AOT_CODENAME2OFFLOADARCH | cut -d" " -f2 | sort -u > $aot_tmpfile - while read -r line ; do - echo " {AOT_${line^^}, \"${line}\"}," >> $AOT_DOTH_FILE - done < $aot_tmpfile - echo "};" >> $AOT_DOTH_FILE -} - -function write_AOT_PROLOG() -{ -cat 2>&1 <<"EOF" > $aot_tmpfile -// This file is generated by make_generated_offload_arch_h.sh -// It is only included by OffloadArch.cpp -#include -#include -EOF -cat $aot_tmpfile >> $AOT_DOTH_FILE -} - -function write_AOT_STRUCTS() -{ -cat 2>&1 <<"EOF" > $aot_tmpfile - -struct AOT_CODENAME_ID_TO_STRING{ - AOT_CODENAME codename_id; - const char* codename; -}; - -struct AOT_OFFLOADARCH_TO_STRING{ - AOT_OFFLOADARCH offloadarch_id; - const char* offloadarch; -}; - -struct AOT_OFFLOADARCH_TO_CODENAME_ENTRY{ - const char* offloadarch; - const char* codename; -}; - -struct AOT_TABLE_ENTRY{ - uint16_t vendorid; - uint16_t devid; - AOT_CODENAME codename_id; - AOT_OFFLOADARCH offloadarch_id; -}; -EOF -cat $aot_tmpfile >> $AOT_DOTH_FILE -} - -function write_AMD_OFFLOADARCH_TO_CODENAME_TABLE() -{ - echo " " >> $AOT_DOTH_FILE - echo "extern const AOT_OFFLOADARCH_TO_CODENAME_ENTRY AOT_AMD_OFFLOADARCH_TO_CODENAME_TABLE[] = {" >> $AOT_DOTH_FILE - cat $AOT_CODENAME2OFFLOADARCH_AMD | sort -u -t" " -k2 > $aot_tmpfile - while read -r line ; do - echo $line - codename=`echo $line | cut -d " " -f1` - offloadarch=`echo $line | cut -d " " -f2` - echo "{ \"${offloadarch}\", \"${codename}\" }," >>$AOT_DOTH_FILE - done < $aot_tmpfile - echo "};" >> $AOT_DOTH_FILE - echo " " >> $AOT_DOTH_FILE -} - -function write_AOT_TABLE() -{ - echo "extern const AOT_TABLE_ENTRY AOT_TABLE[] = {" >>$AOT_DOTH_FILE - cat $AOT_PCIID2CODENAME | sort -u -t" " -k1 > $aot_tmpfile - while read -r line ; do - codename=`echo $line | cut -d" " -f4` - # only proceed if we know about this codename - grep -q "^$codename " $AOT_CODENAME2OFFLOADARCH - if [ $? == 0 ] ; then - vid=`echo $line | cut -d":" -f1` - devid=`echo $line | cut -d" " -f1 | cut -d":" -f2` - offloadarchid=$(get_offloadarch_id_from_codename $codename) - echo "{ 0x${vid}, 0x${devid}, AOT_CN_${codename^^}, AOT_${offloadarchid^^} }," >>$AOT_DOTH_FILE - fi - done < $aot_tmpfile - echo "};" >> $AOT_DOTH_FILE - echo " " >> $AOT_DOTH_FILE -} - -# =========== Main code starts here ====================== - -# we dont want to append to existing file -[ -f $AOT_DOTH_FILE ] && rm $AOT_DOTH_FILE -touch $AOT_DOTH_FILE - -aot_tmpfile="/tmp/zz$$" - -write_AOT_PROLOG -write_AOT_OFFLOADARCH -write_AOT_CODENAME -write_AOT_STRUCTS -write_AOT_CODENAMEID_TO_STRING -write_AOT_OFFLOADARCH_TO_STRING -write_AMD_OFFLOADARCH_TO_CODENAME_TABLE -write_AOT_TABLE - -rm $aot_tmpfile - -exit 0 diff --git a/llvm/lib/OffloadArch/nvidia/codename2offloadarch.txt b/llvm/lib/OffloadArch/nvidia/codename2offloadarch.txt deleted file mode 100644 index f910d5359c5618..00000000000000 --- a/llvm/lib/OffloadArch/nvidia/codename2offloadarch.txt +++ /dev/null @@ -1,12 +0,0 @@ -k4000 sm_30 -k4200 sm_30 -gtx750 sm_50 -gtx960m sm_50 -gtx980 sm_35 -gtx1050 sm_61 -gtx1060 sm_61 -gtx1080 sm_61 -gt730 sm_35 -p100 sm_60 -gv100 sm_70 -v100 sm_70 diff --git a/llvm/lib/OffloadArch/nvidia/pciid2codename.txt b/llvm/lib/OffloadArch/nvidia/pciid2codename.txt deleted file mode 100644 index 35ddcc13fbba9e..00000000000000 --- a/llvm/lib/OffloadArch/nvidia/pciid2codename.txt +++ /dev/null @@ -1,1235 +0,0 @@ -10de:0040 0000 0000 6800 : NV40 [GeForce 6800 Ultra] -10de:0041 0000 0000 6800 : NV40 [GeForce 6800] -10de:0041 1043 817b 6800 : V9999 Gamer Edition -10de:0041 107d 2992 6800 : WinFast A400 -10de:0041 1458 310f 6800 : Geforce 6800 GV-N6812 -10de:0042 0000 0000 6800le : NV40 [GeForce 6800 LE] -10de:0042 107d 299b 6800le : WinFast A400 LE -10de:0043 0000 0000 6800xe : NV40 [GeForce 6800 XE] -10de:0044 0000 0000 6800xt : NV40 [GeForce 6800 XT] -10de:0045 0000 0000 6800gt : NV40 [GeForce 6800 GT] -10de:0045 1043 817d 6800gt : V9999GT -10de:0045 1458 3140 6800gt : GV-N68T256D -10de:0047 0000 0000 6800gs : NV40 [GeForce 6800 GS] -10de:0047 1682 2109 6800gs : GeForce 6800 GS -10de:0048 0000 0000 6800xt : NV40 [GeForce 6800 XT] -10de:004e 0000 0000 fx4000 : NV40GL [Quadro FX 4000] -10de:0090 0000 0000 7800gtx : G70 [GeForce 7800 GTX] -10de:0091 0000 0000 7800gtx : G70 [GeForce 7800 GTX] -10de:0092 0000 0000 7800gt : G70 [GeForce 7800 GT] -10de:0093 0000 0000 7800gs : G70 [GeForce 7800 GS] -10de:0095 0000 0000 7800sli : G70 [GeForce 7800 SLI] -10de:0097 0000 0000 gts250 : G70 [GeForce GTS 250] -10de:0098 0000 0000 go7800 : G70M [GeForce Go 7800] -10de:0099 0000 0000 go7800gtx : G70M [GeForce Go 7800 GTX] -10de:009d 0000 0000 fx4500 : G70GL [Quadro FX 4500] -10de:00c0 0000 0000 6800gs : NV41 [GeForce 6800 GS] -10de:00c1 0000 0000 6800 : NV41 [GeForce 6800] -10de:00c2 0000 0000 6800le : NV41 [GeForce 6800 LE] -10de:00c3 0000 0000 6800xt : NV41 [GeForce 6800 XT] -10de:00c8 0000 0000 go6800 : NV41M [GeForce Go 6800] -10de:00c9 0000 0000 go6800 : NV41M [GeForce Go 6800 Ultra] -10de:00cc 0000 0000 fxgo1400 : NV41GLM [Quadro FX Go1400] -10de:00cd 0000 0000 fx3450/4000sdi : NV42GL [Quadro FX 3450/4000 SDI] -10de:00cd 10de 029b fx3450/4000sdi : Quadro FX 3450 -10de:00ce 0000 0000 fx1400 : NV41GL [Quadro FX 1400] -10de:00f1 0000 0000 6600gt : NV43 [GeForce 6600 GT] -10de:00f1 1043 81a6 6600gt : N6600GT TD 128M AGP -10de:00f1 1043 81c6 6600gt : N6600GT TD 128M AGP -10de:00f1 1458 3150 6600gt : GV-N66T128VP -10de:00f1 1554 1191 6600gt : PixelView PV-N43UA (128KD) -10de:00f1 1682 2119 6600gt : GeForce 6600 GT AGP -10de:00f2 0000 0000 6600 : NV43 [GeForce 6600] -10de:00f2 1554 1194 6600 : PixelView PV-N43AT (256KD) -10de:00f2 1682 211c 6600 : GeForce 6600 256MB DDR DUAL DVI TV -10de:00f3 0000 0000 6200 : NV43 [GeForce 6200] -10de:00f4 0000 0000 6600le : NV43 [GeForce 6600 LE] -10de:00f5 0000 0000 7800gs : G71 [GeForce 7800 GS] -10de:00f6 0000 0000 6800gs/xt : NV43 [GeForce 6800 GS/XT] -10de:00f6 1682 217e 6800gs/xt : XFX GeForce 6800 XTreme 256MB DDR3 AGP -10de:00f8 0000 0000 fx3400/4400 : NV45GL [Quadro FX 3400/4400] -10de:00f9 0000 0000 6800gt/gto/ultra : NV40 [GeForce 6800 GT/GTO/Ultra] -10de:00f9 10de 00f9 6800gt/gto/ultra : NV40 [GeForce 6800 GT] -10de:00f9 1682 2120 6800gt/gto/ultra : GEFORCE 6800 GT PCI-E -10de:00fa 0000 0000 pcx5750 : NV39 [GeForce PCX 5750] -10de:00fb 0000 0000 pcx5900 : NV35 [GeForce PCX 5900] -10de:00fc 0000 0000 fx330/geforcepcx5300 : NV37GL [Quadro FX 330/GeForce PCX 5300] -10de:00fd 0000 0000 pci-eseries : NV37GL [Quadro PCI-E Series] -10de:00fe 0000 0000 fx1300 : NV38GL [Quadro FX 1300] -10de:00ff 0000 0000 pcx4300 : NV19 [GeForce PCX 4300] -10de:0100 0000 0000 256sdr : NV10 [GeForce 256 SDR] -10de:0100 1043 0200 256sdr : AGP-V6600 SGRAM -10de:0100 1043 0201 256sdr : AGP-V6600 SDRAM -10de:0100 1043 4008 256sdr : AGP-V6600 SGRAM -10de:0100 1043 4009 256sdr : AGP-V6600 SDRAM -10de:0100 1048 0c41 256sdr : Erazor X -10de:0100 1048 0c43 256sdr : ERAZOR X PCI -10de:0100 1048 0c48 256sdr : Synergy Force -10de:0100 1102 102d 256sdr : CT6941 GeForce 256 -10de:0100 14af 5022 256sdr : 3D Prophet SE -10de:0101 0000 0000 256ddr : NV10 [GeForce 256 DDR] -10de:0101 1043 0202 256ddr : AGP-V6800 DDR -10de:0101 1043 400a 256ddr : AGP-V6800 DDR SGRAM -10de:0101 1043 400b 256ddr : AGP-V6800 DDR SDRAM -10de:0101 1048 0c42 256ddr : Erazor X -10de:0101 107d 2822 256ddr : WinFast GeForce 256 -10de:0101 1102 102e 256ddr : CT6970/CT6971 -10de:0101 14af 5021 256ddr : 3D Prophet DDR-DVI -10de:0140 0000 0000 6600gt : NV43 [GeForce 6600 GT] -10de:0140 1458 3125 6600gt : GV-NX66T128D -10de:0140 1458 3126 6600gt : GV-NX66T256DE -10de:0140 1462 8939 6600gt : MS-8983 -10de:0141 0000 0000 6600 : NV43 [GeForce 6600] -10de:0141 1043 81b0 6600 : EN6600 Silencer -10de:0141 107d 593a 6600 : LR2A22 128MB TV OUT -10de:0141 107d 597b 6600 : WINFAST PX6600 -10de:0141 1458 3124 6600 : GV-NX66128DP Turbo Force Edition -10de:0142 0000 0000 6600le : NV43 [GeForce 6600 LE] -10de:0143 0000 0000 6600ve : NV43 [GeForce 6600 VE] -10de:0144 0000 0000 go6600 : NV43M [GeForce Go 6600] -10de:0145 0000 0000 6610xl : NV43 [GeForce 6610 XL] -10de:0146 0000 0000 go6200te6600te : NV43M [GeForce Go6200 TE / 6600 TE] -10de:0147 0000 0000 6700xl : NV43 [GeForce 6700 XL] -10de:0148 0000 0000 go6600 : NV43M [GeForce Go 6600] -10de:0149 0000 0000 go6600gt : NV43M [GeForce Go 6600 GT] -10de:014a 0000 0000 nvs440 : NV43 [Quadro NVS 440] -10de:014d 0000 0000 fx550 : NV43GL [Quadro FX 550] -10de:014e 0000 0000 fx540 : NV43GL [Quadro FX 540] -10de:014f 0000 0000 6200 : NV43 [GeForce 6200] -10de:0160 0000 0000 6500 : NV44 [GeForce 6500] -10de:0161 0000 0000 6200turbocache : NV44 [GeForce 6200 TurboCache] -10de:0162 0000 0000 6200turbocache : NV44 [GeForce 6200 SE TurboCache] -10de:0163 0000 0000 6200le : NV44 [GeForce 6200 LE] -10de:0164 0000 0000 go6200 : NV44M [GeForce Go 6200] -10de:0165 0000 0000 nvs285 : NV44 [Quadro NVS 285] -10de:0166 0000 0000 go6400 : NV44M [GeForce Go 6400] -10de:0167 0000 0000 go6200 : NV44M [GeForce Go 6200] -10de:0168 0000 0000 go6400 : NV44M [GeForce Go 6400] -10de:0169 0000 0000 6250 : NV44 [GeForce 6250] -10de:016a 0000 0000 7100gs : NV44 [GeForce 7100 GS] -10de:017a 0000 0000 nvs : NV17GL [Quadro NVS] -10de:018a 0000 0000 nvs280sd : NV18GL [Quadro NVS 280 SD] -10de:018c 0000 0000 nvs50 : NV18GL [Quadro NVS 50 PCI] -10de:0190 0000 0000 8800gts8800gtx : G80 [GeForce 8800 GTS / 8800 GTX] -10de:0191 0000 0000 8800gtx : G80 [GeForce 8800 GTX] -10de:0192 0000 0000 8800gts : G80 [GeForce 8800 GTS] -10de:0193 0000 0000 8800gts : G80 [GeForce 8800 GTS] -10de:0193 107d 20bd 8800gts : WinFast PX 8800 GTS TDH -10de:0194 0000 0000 8800 : G80 [GeForce 8800 Ultra] -10de:0197 0000 0000 c870 : G80GL [Tesla C870] -10de:019d 0000 0000 fx5600 : G80GL [Quadro FX 5600] -10de:019e 0000 0000 fx4600 : G80GL [Quadro FX 4600] -10de:01d0 0000 0000 7350le : G72 [GeForce 7350 LE] -10de:01d1 0000 0000 7300le : G72 [GeForce 7300 LE] -10de:01d1 107d 5efa 7300le : WinFast PX7300LE-TD128 -10de:01d1 107d 5efb 7300le : WinFast PX7300LE-TD256 -10de:01d1 1462 0345 7300le : 7300LE PCI Express Graphics Adapter -10de:01d2 0000 0000 7550le : G72 [GeForce 7550 LE] -10de:01d3 0000 0000 7200gs7300 : G72 [GeForce 7200 GS / 7300 SE] -10de:01d3 1043 8203 7200gs7300 : EN7300SE -10de:01d3 1043 8250 7200gs7300 : EN7200GS -10de:01d6 0000 0000 go7200 : G72M [GeForce Go 7200] -10de:01d7 0000 0000 nvs110m/geforcego7300 : G72M [Quadro NVS 110M/GeForce Go 7300] -10de:01d8 0000 0000 go7400 : G72M [GeForce Go 7400] -10de:01d8 1028 01d7 go7400 : XPS M1210 -10de:01d9 0000 0000 go7450 : G72M [GeForce Go 7450] -10de:01da 0000 0000 nvs110m : G72M [Quadro NVS 110M] -10de:01db 0000 0000 nvs120m : G72M [Quadro NVS 120M] -10de:01dc 0000 0000 fx350m : G72GLM [Quadro FX 350M] -10de:01dd 0000 0000 7500le : G72 [GeForce 7500 LE] -10de:01de 0000 0000 fx350 : G72GL [Quadro FX 350] -10de:01de 10de 01dc fx350 : Quadro FX Go350M -10de:01df 0000 0000 7300gs : G72 [GeForce 7300 GS] -10de:0203 0000 0000 dcc : NV20GL [Quadro DCC] -10de:0211 0000 0000 6800 : NV48 [GeForce 6800] -10de:0212 0000 0000 6800le : NV48 [GeForce 6800 LE] -10de:0215 0000 0000 6800gt : NV48 [GeForce 6800 GT] -10de:0218 0000 0000 6800xt : NV48 [GeForce 6800 XT] -10de:0221 0000 0000 6200 : NV44A [GeForce 6200] -10de:0221 1043 81e1 6200 : N6200/TD/256M/A -10de:0221 3842 a341 6200 : 256A8N341DX -10de:0222 0000 0000 6200a-le : NV44 [GeForce 6200 A-LE] -10de:0240 0000 0000 6150 : C51PV [GeForce 6150] -10de:0240 1043 81cd 6150 : A8N-VM CSM -10de:0240 1462 7207 6150 : K8NGM2 series -10de:0241 0000 0000 6150le : C51 [GeForce 6150 LE] -10de:0242 0000 0000 6100 : C51G [GeForce 6100] -10de:0242 105b 0cad 6100 : Winfast 6100K8MB -10de:0244 0000 0000 go6150 : C51 [GeForce Go 6150] -10de:0244 103c 30b5 go6150 : Presario V3242AU -10de:0244 103c 30b7 go6150 : Presario V6133CL -10de:0244 10de 0244 go6150 : GeForce Go 6150 -10de:0245 0000 0000 nvs210s/geforce6150le : C51 [Quadro NVS 210S/GeForce 6150LE] -10de:0247 0000 0000 go6100 : C51 [GeForce Go 6100] -10de:0247 1043 1382 go6100 : MCP51 PCI-X GeForce Go 6100 -10de:0290 0000 0000 7900gtx : G71 [GeForce 7900 GTX] -10de:0291 0000 0000 7900gt/gto : G71 [GeForce 7900 GT/GTO] -10de:0291 10de 042b 7900gt/gto : NX7900GTO-T2D512E [7900 GTO] -10de:0292 0000 0000 7900gs : G71 [GeForce 7900 GS] -10de:0293 0000 0000 7900gx2 : G71 [GeForce 7900 GX2] -10de:0294 0000 0000 7950gx2 : G71 [GeForce 7950 GX2] -10de:0295 0000 0000 7950gt : G71 [GeForce 7950 GT] -10de:0295 1043 8225 7950gt : GeForce 7950 GT -10de:0295 107d 2a68 7950gt : WinFast PX7950GT TDH -10de:0295 1462 0663 7950gt : NX7950GT-VT2D512EZ-HD -10de:0297 0000 0000 go7950gtx : G71M [GeForce Go 7950 GTX] -10de:0298 0000 0000 go7900gs : G71M [GeForce Go 7900 GS] -10de:0299 0000 0000 go7900gtx : G71M [GeForce Go 7900 GTX] -10de:029a 0000 0000 fx2500m : G71GLM [Quadro FX 2500M] -10de:029b 0000 0000 fx1500m : G71GLM [Quadro FX 1500M] -10de:029c 0000 0000 fx5500 : G71GL [Quadro FX 5500] -10de:029d 0000 0000 fx3500 : G71GL [Quadro FX 3500] -10de:029d 1028 019b fx3500 : G71GLM [Quadro FX 3500M] -10de:029e 0000 0000 fx1500 : G71GL [Quadro FX 1500] -10de:029f 0000 0000 fx4500x2 : G71GL [Quadro FX 4500 X2] -10de:02e0 0000 0000 7600gt : G73 [GeForce 7600 GT] -10de:02e0 02e0 2249 7600gt : GF 7600GT 560M 256MB DDR3 DUAL DVI TV -10de:02e1 0000 0000 7600gs : G73 [GeForce 7600 GS] -10de:02e1 1682 222b 7600gs : PV-T73K-UAL3 (256MB) -10de:02e1 1682 2247 7600gs : GF 7600GS 512MB DDR2 -10de:02e2 0000 0000 7300gt : G73 [GeForce 7300 GT] -10de:02e3 0000 0000 7900gs : G71 [GeForce 7900 GS] -10de:02e4 0000 0000 7950gt : G71 [GeForce 7950 GT] -10de:02e4 1682 2271 7950gt : PV-T71A-YDF7 (512MB) -10de:0300 0000 0000 fx : NV30 [GeForce FX] -10de:0301 0000 0000 fx5800 : NV30 [GeForce FX 5800 Ultra] -10de:0302 0000 0000 fx5800 : NV30 [GeForce FX 5800] -10de:0308 0000 0000 fx2000 : NV30GL [Quadro FX 2000] -10de:0309 0000 0000 fx1000 : NV30GL [Quadro FX 1000] -10de:0311 0000 0000 fx5600 : NV31 [GeForce FX 5600 Ultra] -10de:0312 0000 0000 fx5600 : NV31 [GeForce FX 5600] -10de:0314 0000 0000 fx5600xt : NV31 [GeForce FX 5600XT] -10de:0314 1043 814a fx5600xt : V9560XT/TD -10de:031a 0000 0000 fxgo5600 : NV31M [GeForce FX Go5600] -10de:031b 0000 0000 fxgo5650 : NV31M [GeForce FX Go5650] -10de:031c 0000 0000 fxgo700 : NV31GLM [Quadro FX Go700] -10de:0320 0000 0000 fx5200 : NV34 [GeForce FX 5200] -10de:0321 0000 0000 fx5200 : NV34 [GeForce FX 5200 Ultra] -10de:0322 0000 0000 fx5200 : NV34 [GeForce FX 5200] -10de:0322 1043 02fb fx5200 : V9250 Magic -10de:0322 1043 8180 fx5200 : V9520-X/TD/128M -10de:0322 107d 2967 fx5200 : WinFast A340T 128MB -10de:0322 1462 9110 fx5200 : MS-8911 (FX5200-TD128) -10de:0322 1462 9171 fx5200 : MS-8917 (FX5200-T128) -10de:0322 1462 9360 fx5200 : MS-8936 (FX5200-T128) -10de:0322 1682 1351 fx5200 : GeForce FX 5200 -10de:0323 0000 0000 fx5200le : NV34 [GeForce FX 5200LE] -10de:0324 0000 0000 fxgo520064m : NV34M [GeForce FX Go5200 64M] -10de:0324 1028 0196 fxgo520064m : Inspiron 5160 -10de:0324 103c 006a fxgo520064m : Pavilion ZD7000 laptop -10de:0324 1071 8160 fxgo520064m : MIM2000 -10de:0325 0000 0000 fxgo5250 : NV34M [GeForce FX Go5250] -10de:0326 0000 0000 fx5500 : NV34 [GeForce FX 5500] -10de:0326 1458 310d fx5500 : GeForce FX 5500 128 MB -10de:0326 1682 2034 fx5500 : GeForce 5500 256 MB -10de:0327 0000 0000 fx5100 : NV34 [GeForce FX 5100] -10de:0328 0000 0000 fxgo520032m/64m : NV34M [GeForce FX Go5200 32M/64M] -10de:0329 0000 0000 fxgo5200 : NV34M [GeForce FX Go5200] -10de:0329 10de 0010 fxgo5200 : Powerbook G4 -10de:032a 0000 0000 nvs280 : NV34GL [Quadro NVS 280 PCI] -10de:032b 0000 0000 fx500/600 : NV34GL [Quadro FX 500/600 PCI] -10de:032c 0000 0000 fxgo5300go5350 : NV34M [GeForce FX Go5300 / Go5350] -10de:032d 0000 0000 fxgo5100 : NV34M [GeForce FX Go5100] -10de:032f 0000 0000 fx5200 : NV34 [GeForce FX 5200] -10de:0330 0000 0000 fx5900 : NV35 [GeForce FX 5900 Ultra] -10de:0330 1043 8137 fx5900 : V9950 Ultra / 256 MB -10de:0331 0000 0000 fx5900 : NV35 [GeForce FX 5900] -10de:0331 1043 8145 fx5900 : V9950GE -10de:0332 0000 0000 fx5900xt : NV35 [GeForce FX 5900XT] -10de:0333 0000 0000 fx5950 : NV38 [GeForce FX 5950 Ultra] -10de:0334 0000 0000 fx5900zt : NV35 [GeForce FX 5900ZT] -10de:0334 1462 9373 fx5900zt : FX5900ZT-VTD128 (MS-8937) -10de:0338 0000 0000 fx3000 : NV35GL [Quadro FX 3000] -10de:033f 0000 0000 fx700 : NV35GL [Quadro FX 700] -10de:0341 0000 0000 fx5700 : NV36 [GeForce FX 5700 Ultra] -10de:0341 1462 9380 fx5700 : MS-8938 (FX5700U-TD128) -10de:0342 0000 0000 fx5700 : NV36 [GeForce FX 5700] -10de:0343 0000 0000 fx5700le : NV36 [GeForce FX 5700LE] -10de:0344 0000 0000 fx5700ve : NV36 [GeForce FX 5700VE] -10de:0347 0000 0000 fxgo5700 : NV36M [GeForce FX Go5700] -10de:0347 103c 006a fxgo5700 : NX9500 -10de:0348 0000 0000 fxgo5700 : NV36M [GeForce FX Go5700] -10de:034c 0000 0000 fxgo1000 : NV36 [Quadro FX Go1000] -10de:034e 0000 0000 fx1100 : NV36GL [Quadro FX 1100] -10de:038b 0000 0000 7650gs : G73 [GeForce 7650 GS] -10de:0390 0000 0000 7650gs : G73 [GeForce 7650 GS] -10de:0391 0000 0000 7600gt : G73 [GeForce 7600 GT] -10de:0391 1458 3427 7600gt : GV-NX76T128D-RH -10de:0391 1462 0452 7600gt : NX7600GT-VT2D256E -10de:0392 0000 0000 7600gs : G73 [GeForce 7600 GS] -10de:0392 1462 0622 7600gs : NX7600GS-T2D256EH -10de:0393 0000 0000 7300gt : G73 [GeForce 7300 GT] -10de:0393 10de 0412 7300gt : NX7300GT-TD256EH -10de:0393 1462 0412 7300gt : NX7300GT-TD256EH -10de:0394 0000 0000 7600le : G73 [GeForce 7600 LE] -10de:0395 0000 0000 7300gt : G73 [GeForce 7300 GT] -10de:0397 0000 0000 go7700 : G73M [GeForce Go 7700] -10de:0398 0000 0000 go7600 : G73M [GeForce Go 7600] -10de:0398 1025 006c go7600 : Aspire 9814WKMi -10de:0399 0000 0000 go7600gt : G73M [GeForce Go 7600 GT] -10de:039a 0000 0000 nvs300m : G73M [Quadro NVS 300M] -10de:039b 0000 0000 go7900 : G73M [GeForce Go 7900 SE] -10de:039c 0000 0000 fx550m : G73GLM [Quadro FX 550M] -10de:039c 10de 039c fx550m : Quadro FX 560M -10de:039e 0000 0000 fx560 : G73GL [Quadro FX 560] -10de:03d0 0000 0000 6150senforce430 : C61 [GeForce 6150SE nForce 430] -10de:03d0 1028 020e 6150senforce430 : Inspiron 531 -10de:03d1 0000 0000 6100nforce405 : C61 [GeForce 6100 nForce 405] -10de:03d2 0000 0000 6100nforce400 : C61 [GeForce 6100 nForce 400] -10de:03d5 0000 0000 6100nforce420 : C61 [GeForce 6100 nForce 420] -10de:03d6 0000 0000 7025nforce630a : C61 [GeForce 7025 / nForce 630a] -10de:0400 0000 0000 8600gts : G84 [GeForce 8600 GTS] -10de:0400 1043 8241 8600gts : EN8600GTS -10de:0401 0000 0000 8600gt : G84 [GeForce 8600 GT] -10de:0402 0000 0000 8600gt : G84 [GeForce 8600 GT] -10de:0402 1458 3455 8600gt : GV-NX86T512H -10de:0402 1462 0910 8600gt : NX8600GT-T2D256EZ -10de:0403 0000 0000 8600gs : G84 [GeForce 8600 GS] -10de:0404 0000 0000 8400gs : G84 [GeForce 8400 GS] -10de:0404 1462 1230 8400gs : NX8400GS-TD256E -10de:0405 0000 0000 9500mgs : G84M [GeForce 9500M GS] -10de:0406 0000 0000 8300gs : G84 [GeForce 8300 GS] -10de:0407 0000 0000 8600mgt : G84M [GeForce 8600M GT] -10de:0408 0000 0000 9650mgs : G84M [GeForce 9650M GS] -10de:0409 0000 0000 8700mgt : G84M [GeForce 8700M GT] -10de:040a 0000 0000 fx370 : G84GL [Quadro FX 370] -10de:040b 0000 0000 nvs320m : G84GLM [Quadro NVS 320M] -10de:040c 0000 0000 fx570m : G84GLM [Quadro FX 570M] -10de:040c 17aa 20d9 fx570m : ThinkPad T61p -10de:040d 0000 0000 fx1600m : G84GLM [Quadro FX 1600M] -10de:040e 0000 0000 fx570 : G84GL [Quadro FX 570] -10de:040f 0000 0000 fx1700 : G84GL [Quadro FX 1700] -10de:0410 0000 0000 gt330 : G92 [GeForce GT 330] -10de:0414 0000 0000 9800gt : G92 [GeForce 9800 GT] -10de:0418 0000 0000 gt330 : G92 [GeForce GT 330 OEM] -10de:0420 0000 0000 8400 : G86 [GeForce 8400 SE] -10de:0421 0000 0000 8500gt : G86 [GeForce 8500 GT] -10de:0421 1462 0960 8500gt : NX8500GT-TD512EH/M2 -10de:0422 0000 0000 8400gs : G86 [GeForce 8400 GS] -10de:0423 0000 0000 8300gs : G86 [GeForce 8300 GS] -10de:0424 0000 0000 8400gs : G86 [GeForce 8400 GS] -10de:0425 0000 0000 8600mgs : G86M [GeForce 8600M GS] -10de:0425 1025 0121 8600mgs : Aspire 5920G -10de:0425 1043 1514 8600mgs : F3SV -10de:0426 0000 0000 8400mgt : G86M [GeForce 8400M GT] -10de:0427 0000 0000 8400mgs : G86M [GeForce 8400M GS] -10de:0427 103c 30cc 8400mgs : Pavilion dv6700 -10de:0427 103c 30cf 8400mgs : Pavilion dv9668eg Laptop -10de:0428 0000 0000 8400mg : G86M [GeForce 8400M G] -10de:0429 0000 0000 nvs140m : G86M [Quadro NVS 140M] -10de:0429 17aa 20d8 nvs140m : ThinkPad T61 -10de:042a 0000 0000 nvs130m : G86M [Quadro NVS 130M] -10de:042b 0000 0000 nvs135m : G86M [Quadro NVS 135M] -10de:042c 0000 0000 9400gt : G86 [GeForce 9400 GT] -10de:042d 0000 0000 fx360m : G86GLM [Quadro FX 360M] -10de:042e 0000 0000 9300mg : G86M [GeForce 9300M G] -10de:042f 0000 0000 nvs290 : G86 [Quadro NVS 290] -10de:0531 0000 0000 7150mnforce630m : C67 [GeForce 7150M / nForce 630M] -10de:0533 0000 0000 7000mnforce610m : C67 [GeForce 7000M / nForce 610M] -10de:053a 0000 0000 7050pvnforce630a : C68 [GeForce 7050 PV / nForce 630a] -10de:053b 0000 0000 7050pvnforce630a : C68 [GeForce 7050 PV / nForce 630a] -10de:053b 1043 8308 7050pvnforce630a : M2N68-AM Motherboard -10de:053e 0000 0000 7025nforce630a : C68 [GeForce 7025 / nForce 630a] -10de:0569 0000 0000 8200 : MCP78S [GeForce 8200] PCI Express Bridge -10de:0569 103c 2a9e 8200 : Pavilion p6310f -10de:0569 1043 82e8 8200 : M3N72-D -10de:0569 1462 7508 8200 : K9N2GM-FIH -10de:0569 1849 0569 8200 : K10N78FullHD-hSLI R3.0 PCI Express Bridge -10de:05e0 0000 0000 gtx295 : GT200b [GeForce GTX 295] -10de:05e1 0000 0000 gtx280 : GT200 [GeForce GTX 280] -10de:05e2 0000 0000 gtx260 : GT200 [GeForce GTX 260] -10de:05e3 0000 0000 gtx285 : GT200b [GeForce GTX 285] -10de:05e3 1682 2490 gtx285 : GX-285N-ZDF -10de:05e6 0000 0000 gtx275 : GT200b [GeForce GTX 275] -10de:05e7 0000 0000 c1060m1060 : GT200GL [Tesla C1060 / M1060] -10de:05e7 10de 0595 c1060m1060 : Tesla T10 Processor -10de:05e7 10de 068f c1060m1060 : Tesla T10 Processor -10de:05e7 10de 0697 c1060m1060 : Tesla M1060 -10de:05e7 10de 0714 c1060m1060 : Tesla M1060 -10de:05e7 10de 0743 c1060m1060 : Tesla M1060 -10de:05ea 0000 0000 gtx260 : GT200 [GeForce GTX 260] -10de:05eb 0000 0000 gtx295 : GT200 [GeForce GTX 295] -10de:05ed 0000 0000 plex2200d2 : GT200GL [Quadro Plex 2200 D2] -10de:05f1 0000 0000 gtx280 : GT200 [GeForce GTX 280] -10de:05f2 0000 0000 gtx260 : GT200 [GeForce GTX 260] -10de:05f8 0000 0000 plex2200s4 : GT200GL [Quadro Plex 2200 S4] -10de:05f9 0000 0000 cx : GT200GL [Quadro CX] -10de:05fd 0000 0000 fx5800 : GT200GL [Quadro FX 5800] -10de:05fe 0000 0000 fx4800 : GT200GL [Quadro FX 4800] -10de:05ff 0000 0000 fx3800 : GT200GL [Quadro FX 3800] -10de:0600 0000 0000 8800gts512 : G92 [GeForce 8800 GTS 512] -10de:0601 0000 0000 9800gt : G92 [GeForce 9800 GT] -10de:0602 0000 0000 8800gt : G92 [GeForce 8800 GT] -10de:0603 0000 0000 gt230 : G92 [GeForce GT 230 OEM] -10de:0604 0000 0000 9800gx2 : G92 [GeForce 9800 GX2] -10de:0605 0000 0000 9800gt : G92 [GeForce 9800 GT] -10de:0606 0000 0000 8800gs : G92 [GeForce 8800 GS] -10de:0607 0000 0000 gts240 : G92 [GeForce GTS 240] -10de:0608 0000 0000 9800mgtx : G92M [GeForce 9800M GTX] -10de:0609 0000 0000 8800mgts : G92M [GeForce 8800M GTS] -10de:0609 106b 00a7 8800mgts : GeForce 8800 GS -10de:060a 0000 0000 gtx280m : G92M [GeForce GTX 280M] -10de:060b 0000 0000 9800mgt : G92M [GeForce 9800M GT] -10de:060c 0000 0000 8800mgtx : G92M [GeForce 8800M GTX] -10de:060d 0000 0000 8800gs : G92 [GeForce 8800 GS] -10de:060f 0000 0000 gtx285m : G92M [GeForce GTX 285M] -10de:0610 0000 0000 9600gso : G92 [GeForce 9600 GSO] -10de:0610 1682 2385 9600gso : GeForce 9600 GSO 768mb -10de:0611 0000 0000 8800gt : G92 [GeForce 8800 GT] -10de:0611 107d 2ab0 8800gt : Winfast PX8800 GT PCI-E -10de:0611 1462 1170 8800gt : NX8800GT series model V117 2xDVI+TV -10de:0611 19da 1040 8800gt : ZT-88TES2P-FSP -10de:0612 0000 0000 9800gtx9800gtx+ : G92 [GeForce 9800 GTX / 9800 GTX+] -10de:0613 0000 0000 9800gtx+ : G92 [GeForce 9800 GTX+] -10de:0614 0000 0000 9800gt : G92 [GeForce 9800 GT] -10de:0614 107d 2ab3 9800gt : WinFast PX9800 GT (S-Fanpipe) -10de:0615 0000 0000 gts250 : G92 [GeForce GTS 250] -10de:0615 3842 1150 gts250 : GeForce GTS 250 P/N 512-P3-1150-TR -10de:0615 3842 1151 gts250 : GeForce GTS 250 P/N 512-P3-1151-TR -10de:0615 3842 1155 gts250 : GeForce GTS 250 P/N 01G-P3-1155-TR -10de:0615 3842 1156 gts250 : GeForce GTS 250 P/N 01G-P3-1156-TR -10de:0617 0000 0000 9800mgtx : G92M [GeForce 9800M GTX] -10de:0618 0000 0000 gtx260m : G92M [GeForce GTX 260M] -10de:0619 0000 0000 fx4700x2 : G92GL [Quadro FX 4700 X2] -10de:061a 0000 0000 fx3700 : G92GL [Quadro FX 3700] -10de:061b 0000 0000 vx200 : G92GL [Quadro VX 200] -10de:061c 0000 0000 fx3600m : G92GLM [Quadro FX 3600M] -10de:061d 0000 0000 fx2800m : G92GLM [Quadro FX 2800M] -10de:061e 0000 0000 fx3700m : G92GLM [Quadro FX 3700M] -10de:061f 0000 0000 fx3800m : G92GLM [Quadro FX 3800M] -10de:0620 0000 0000 9800gt : G94 [GeForce 9800 GT] -10de:0621 0000 0000 gt230 : G94 [GeForce GT 230] -10de:0622 0000 0000 9600gt : G94 [GeForce 9600 GT] -10de:0622 107d 2ac1 9600gt : WinFast PX9600GT 1024MB -10de:0622 1458 3481 9600gt : GV-NX96T512HP -10de:0623 0000 0000 9600gs : G94 [GeForce 9600 GS] -10de:0624 0000 0000 9600gtgreen : G94 [GeForce 9600 GT Green Edition] -10de:0625 0000 0000 9600gso512 : G94 [GeForce 9600 GSO 512] -10de:0626 0000 0000 gt130 : G94 [GeForce GT 130] -10de:0627 0000 0000 gt140 : G94 [GeForce GT 140] -10de:0628 0000 0000 9800mgts : G94M [GeForce 9800M GTS] -10de:062a 0000 0000 9700mgts : G94M [GeForce 9700M GTS] -10de:062b 0000 0000 9800mgs : G94M [GeForce 9800M GS] -10de:062c 0000 0000 9800mgts : G94M [GeForce 9800M GTS] -10de:062d 0000 0000 9600gt : G94 [GeForce 9600 GT] -10de:062e 0000 0000 9600gt : G94 [GeForce 9600 GT] -10de:062e 106b 0605 9600gt : GeForce GT 130 -10de:062f 0000 0000 9800s : G94 [GeForce 9800 S] -10de:0630 0000 0000 9600gt : G94 [GeForce 9600 GT] -10de:0631 0000 0000 gts160m : G94M [GeForce GTS 160M] -10de:0632 0000 0000 gts150m : G94M [GeForce GTS 150M] -10de:0633 0000 0000 gt220 : G94 [GeForce GT 220] -10de:0635 0000 0000 9600gso : G94 [GeForce 9600 GSO] -10de:0637 0000 0000 9600gt : G94 [GeForce 9600 GT] -10de:0638 0000 0000 fx1800 : G94GL [Quadro FX 1800] -10de:063a 0000 0000 fx2700m : G94GLM [Quadro FX 2700M] -10de:063f 0000 0000 9600ge : G94 [GeForce 9600 GE] -10de:0640 0000 0000 9500gt : G96 [GeForce 9500 GT] -10de:0641 0000 0000 9400gt : G96 [GeForce 9400 GT] -10de:0641 1682 4009 9400gt : PV-T94G-ZAFG -10de:0643 0000 0000 9500gt : G96 [GeForce 9500 GT] -10de:0644 0000 0000 9500gs : G96 [GeForce 9500 GS] -10de:0644 174b 9600 9500gs : Geforce 9500GS 512M DDR2 V/D/HDMI -10de:0645 0000 0000 9500gs : G96 [GeForce 9500 GS] -10de:0646 0000 0000 gt120 : G96 [GeForce GT 120] -10de:0647 0000 0000 9600mgt : G96M [GeForce 9600M GT] -10de:0648 0000 0000 9600mgs : G96M [GeForce 9600M GS] -10de:0649 0000 0000 9600mgt : G96M [GeForce 9600M GT] -10de:0649 1043 202d 9600mgt : GeForce GT 220M -10de:064a 0000 0000 9700mgt : G96M [GeForce 9700M GT] -10de:064b 0000 0000 9500mg : G96M [GeForce 9500M G] -10de:064c 0000 0000 9650mgt : G96M [GeForce 9650M GT] -10de:064d 0000 0000 9600gt : G96 [GeForce 9600 GT] -10de:064e 0000 0000 9600gt9800gt : G96 [GeForce 9600 GT / 9800 GT] -10de:0651 0000 0000 g110m : G96M [GeForce G 110M] -10de:0652 0000 0000 gt130m : G96M [GeForce GT 130M] -10de:0652 152d 0850 gt130m : GeForce GT 240M LE -10de:0653 0000 0000 gt120m : G96M [GeForce GT 120M] -10de:0654 0000 0000 gt220m : G96M [GeForce GT 220M] -10de:0654 1043 14a2 gt220m : GeForce GT 320M -10de:0654 1043 14d2 gt220m : GeForce GT 320M -10de:0655 0000 0000 gt120 : G96 [GeForce GT 120] -10de:0656 0000 0000 9650s : G96 [GeForce 9650 S] -10de:0658 0000 0000 fx380 : G96GL [Quadro FX 380] -10de:0659 0000 0000 fx580 : G96GL [Quadro FX 580] -10de:065a 0000 0000 fx1700m : G96GLM [Quadro FX 1700M] -10de:065b 0000 0000 9400gt : G96 [GeForce 9400 GT] -10de:065c 0000 0000 fx770m : G96GLM [Quadro FX 770M] -10de:065d 0000 0000 9500ga9600gtgts250 : G96 [GeForce 9500 GA / 9600 GT / GTS 250] -10de:065f 0000 0000 g210 : G96 [GeForce G210] -10de:06c0 0000 0000 gtx480 : GF100 [GeForce GTX 480] -10de:06c4 0000 0000 gtx465 : GF100 [GeForce GTX 465] -10de:06ca 0000 0000 gtx480m : GF100M [GeForce GTX 480M] -10de:06cb 0000 0000 gtx480 : GF100 [GeForce GTX 480] -10de:06cd 0000 0000 gtx470 : GF100 [GeForce GTX 470] -10de:06d1 0000 0000 c2050c2070 : GF100GL [Tesla C2050 / C2070] -10de:06d1 10de 0771 c2050c2070 : Tesla C2050 -10de:06d1 10de 0772 c2050c2070 : Tesla C2070 -10de:06d2 0000 0000 m2070 : GF100GL [Tesla M2070] -10de:06d2 10de 0774 m2070 : Tesla M2070 -10de:06d2 10de 0830 m2070 : Tesla M2070 -10de:06d2 10de 0842 m2070 : Tesla M2070 -10de:06d2 10de 088f m2070 : Tesla X2070 -10de:06d2 10de 0908 m2070 : Tesla M2070 -10de:06d8 0000 0000 6000 : GF100GL [Quadro 6000] -10de:06d9 0000 0000 5000 : GF100GL [Quadro 5000] -10de:06da 0000 0000 5000m : GF100GLM [Quadro 5000M] -10de:06dc 0000 0000 6000 : GF100GL [Quadro 6000] -10de:06dd 0000 0000 4000 : GF100GL [Quadro 4000] -10de:06de 0000 0000 t20processor : GF100GL [Tesla T20 Processor] -10de:06de 10de 0773 t20processor : Tesla S2050 -10de:06de 10de 082f t20processor : Tesla M2050 -10de:06de 10de 0840 t20processor : Tesla X2070 -10de:06de 10de 0842 t20processor : Tesla M2050 -10de:06de 10de 0846 t20processor : Tesla M2050 -10de:06de 10de 0866 t20processor : Tesla M2050 -10de:06de 10de 0907 t20processor : Tesla M2050 -10de:06de 10de 091e t20processor : Tesla M2050 -10de:06df 0000 0000 m2070-q : GF100GL [Tesla M2070-Q] -10de:06df 10de 084d m2070-q : Tesla M2070-Q -10de:06df 10de 087f m2070-q : Tesla M2070-Q -10de:06e0 0000 0000 9300ge : G98 [GeForce 9300 GE] -10de:06e0 107d 5a96 9300ge : Geforce 9300GE -10de:06e1 0000 0000 9300gs : G98 [GeForce 9300 GS] -10de:06e2 0000 0000 8400 : G98 [GeForce 8400] -10de:06e3 0000 0000 8300gs : G98 [GeForce 8300 GS] -10de:06e4 0000 0000 8400gs : G98 [GeForce 8400 GS Rev. 2] -10de:06e4 1458 3475 8400gs : GV-NX84S256HE [GeForce 8400 GS] -10de:06e5 0000 0000 9300mgs : G98M [GeForce 9300M GS] -10de:06e6 0000 0000 g100 : G98 [GeForce G 100] -10de:06e7 0000 0000 9300 : G98 [GeForce 9300 SE] -10de:06e8 0000 0000 9200mgs : G98M [GeForce 9200M GS] -10de:06e8 103c 360b 9200mgs : GeForce 9200M GE -10de:06e9 0000 0000 9300mgs : G98M [GeForce 9300M GS] -10de:06e9 1043 19b2 9300mgs : U6V laptop -10de:06ea 0000 0000 nvs150m : G98M [Quadro NVS 150M] -10de:06eb 0000 0000 nvs160m : G98M [Quadro NVS 160M] -10de:06ec 0000 0000 g105m : G98M [GeForce G 105M] -10de:06ed 0000 0000 9600gt9800gt : G98 [GeForce 9600 GT / 9800 GT] -10de:06ee 0000 0000 9600gt9800gt : G98 [GeForce 9600 GT / 9800 GT] -10de:06ef 0000 0000 g103m : G98M [GeForce G 103M] -10de:06f1 0000 0000 g105m : G98M [GeForce G 105M] -10de:06f8 0000 0000 nvs420 : G98 [Quadro NVS 420] -10de:06f9 0000 0000 fx370lp : G98GL [Quadro FX 370 LP] -10de:06fa 0000 0000 nvs450 : G98 [Quadro NVS 450] -10de:06fb 0000 0000 fx370m : G98GLM [Quadro FX 370M] -10de:06fd 0000 0000 nvs295 : G98 [Quadro NVS 295] -10de:0752 0000 0000 8200 : MCP78S [GeForce 8200] SMBus -10de:0752 103c 2a9e 8200 : Pavilion p6310f -10de:0752 1043 82e8 8200 : M3N72-D -10de:0752 1462 7508 8200 : K9N2GM-FIH -10de:0752 1849 0752 8200 : K10N78FullHD-hSLI R3.0 SMBus -10de:0753 0000 0000 8200 : MCP78S [GeForce 8200] Co-Processor -10de:0753 103c 2a9e 8200 : Pavilion p6310f -10de:0753 1043 82e8 8200 : M3N72-D -10de:0753 1462 7508 8200 : K9N2GM-FIH -10de:0753 1849 0753 8200 : K10N78FullHD-hSLI R3.0 Co-Processor -10de:0759 0000 0000 8200ide : MCP78S [GeForce 8200] IDE -10de:0759 1043 82e8 8200ide : M3N72-D -10de:0759 1462 7508 8200ide : K9N2GM-FIH -10de:0759 1849 0759 8200ide : K10N78FullHD-hSLI R3.0 IDE -10de:075a 0000 0000 8200 : MCP78S [GeForce 8200] PCI Bridge -10de:075a 103c 2a9e 8200 : Pavilion p6310f -10de:075a 1043 82e8 8200 : M3N72-D -10de:075a 1849 075a 8200 : K10N78FullHD-hSLI R3.0 PCI Bridge -10de:075b 0000 0000 8200 : MCP78S [GeForce 8200] PCI Express Bridge -10de:075b 103c 2a9e 8200 : Pavilion p6310f -10de:075b 1043 82e8 8200 : M3N72-D -10de:075b 1462 7508 8200 : K9N2GM-FIH -10de:075b 1849 075b 8200 : K10N78FullHD-hSLI R3.0 PCI Express Bridge -10de:075c 0000 0000 8200 : MCP78S [GeForce 8200] LPC Bridge -10de:075c 103c 2a9e 8200 : Pavilion p6310f -10de:075c 1462 7508 8200 : K9N2GM-FIH -10de:075c 1849 075c 8200 : K10N78FullHD-hSLI R3.0 LPC Bridge -10de:075d 0000 0000 8200 : MCP78S [GeForce 8200] LPC Bridge -10de:075d 1043 82e8 8200 : M3N72-D -10de:0778 0000 0000 8200 : MCP78S [GeForce 8200] PCI Express Bridge -10de:0778 103c 2a9e 8200 : Pavilion p6310f -10de:0778 1043 82e8 8200 : M3N72-D -10de:0778 1462 7508 8200 : K9N2GM-FIH -10de:0778 1849 0778 8200 : K10N78FullHD-hSLI R3.0 PCI Express Bridge -10de:077a 0000 0000 8200 : MCP78S [GeForce 8200] PCI Bridge -10de:077a 103c 2a9e 8200 : Pavilion p6310f -10de:077a 1043 82e8 8200 : M3N72-D -10de:077a 1462 7508 8200 : K9N2GM-FIH -10de:077a 1849 077a 8200 : K10N78FullHD-hSLI R3.0 PCI Bridge -10de:07e0 0000 0000 7150nforce630i : C73 [GeForce 7150 / nForce 630i] -10de:07e0 1afa 7150 7150nforce630i : JW-IN7150-HD -10de:07e1 0000 0000 7100nforce630i : C73 [GeForce 7100 / nForce 630i] -10de:07e1 1019 297a 7100nforce630i : MCP73PVT-SM -10de:07e2 0000 0000 7050nforce630i : C73 [GeForce 7050 / nForce 630i] -10de:07e3 0000 0000 7050nforce610i : C73 [GeForce 7050 / nForce 610i] -10de:07e3 147b 1c3e 7050nforce610i : I-N73V motherboard -10de:07e5 0000 0000 7100nforce620i : C73 [GeForce 7100 / nForce 620i] -10de:0840 0000 0000 8200m : C77 [GeForce 8200M] -10de:0844 0000 0000 9100mg : C77 [GeForce 9100M G] -10de:0845 0000 0000 8200mg : C77 [GeForce 8200M G] -10de:0846 0000 0000 9200 : C77 [GeForce 9200] -10de:0847 0000 0000 9100 : C78 [GeForce 9100] -10de:0847 103c 2a9e 9100 : Pavilion p6310f -10de:0848 0000 0000 8300 : C77 [GeForce 8300] -10de:0849 0000 0000 8200 : C77 [GeForce 8200] -10de:0849 1462 7508 8200 : K9N2GM-FIH -10de:0849 1849 0849 8200 : K10N78FullHD-hSLI R3.0 GeForce 8200 -10de:084b 0000 0000 8200 : C77 [GeForce 8200] -10de:084f 0000 0000 8100nforce720a : C77 [GeForce 8100 / nForce 720a] -10de:0860 0000 0000 9300 : C79 [GeForce 9300] -10de:0861 0000 0000 9400 : C79 [GeForce 9400] -10de:0862 0000 0000 9400mg : C79 [GeForce 9400M G] -10de:0863 0000 0000 9400m : C79 [GeForce 9400M] -10de:0863 106b 00aa 9400m : MacBook5,1 -10de:0864 0000 0000 9300 : C79 [GeForce 9300] -10de:0865 0000 0000 9300ion : C79 [GeForce 9300 / ION] -10de:0866 0000 0000 9400mg : C79 [GeForce 9400M G] -10de:0866 106b 00b1 9400mg : GeForce 9400M -10de:0867 0000 0000 9400 : C79 [GeForce 9400] -10de:0867 106b 00ad 9400 : iMac 9,1 -10de:0869 0000 0000 9400 : MCP7A [GeForce 9400] -10de:086a 0000 0000 9400 : C79 [GeForce 9400] -10de:086c 0000 0000 9300nforce730i : C79 [GeForce 9300 / nForce 730i] -10de:086d 0000 0000 9200 : C79 [GeForce 9200] -10de:086e 0000 0000 9100mg : C79 [GeForce 9100M G] -10de:086f 0000 0000 8200mg : MCP79 [GeForce 8200M G] -10de:0870 0000 0000 9400m : C79 [GeForce 9400M] -10de:0871 0000 0000 9200 : C79 [GeForce 9200] -10de:0872 0000 0000 g102m : C79 [GeForce G102M] -10de:0872 1043 19b4 g102m : GeForce G102M -10de:0872 1043 1aa2 g102m : GeForce G102M -10de:0872 1043 1c02 g102m : GeForce G102M -10de:0872 1043 1c42 g102m : GeForce G205M -10de:0873 0000 0000 g102m : C79 [GeForce G102M] -10de:0873 1043 19b4 g102m : GeForce G102M -10de:0873 1043 1c12 g102m : GeForce G102M -10de:0873 1043 1c52 g102m : GeForce G205M -10de:0876 0000 0000 9400mion : C79 [GeForce 9400M / ION] -10de:087a 0000 0000 9400 : C79 [GeForce 9400] -10de:08a0 0000 0000 320m : MCP89 [GeForce 320M] -10de:08a2 0000 0000 320m : MCP89 [GeForce 320M] -10de:08a3 0000 0000 320m : MCP89 [GeForce 320M] -10de:08a4 0000 0000 320m : MCP89 [GeForce 320M] -10de:08a5 0000 0000 320m : MCP89 [GeForce 320M] -10de:0a20 0000 0000 gt220 : GT216 [GeForce GT 220] -10de:0a20 1043 8311 gt220 : ENGT220/DI/1GD3(LP)/V2 -10de:0a21 0000 0000 gt330m : GT216M [GeForce GT 330M] -10de:0a22 0000 0000 315 : GT216 [GeForce 315] -10de:0a23 0000 0000 210 : GT216 [GeForce 210] -10de:0a26 0000 0000 405 : GT216 [GeForce 405] -10de:0a27 0000 0000 405 : GT216 [GeForce 405] -10de:0a28 0000 0000 gt230m : GT216M [GeForce GT 230M] -10de:0a29 0000 0000 gt330m : GT216M [GeForce GT 330M] -10de:0a2a 0000 0000 gt230m : GT216M [GeForce GT 230M] -10de:0a2b 0000 0000 gt330m : GT216M [GeForce GT 330M] -10de:0a2d 0000 0000 gt320m : GT216M [GeForce GT 320M] -10de:0a30 0000 0000 505 : GT216 [GeForce 505] -10de:0a32 0000 0000 gt415 : GT216 [GeForce GT 415] -10de:0a34 0000 0000 gt240m : GT216M [GeForce GT 240M] -10de:0a35 0000 0000 gt325m : GT216M [GeForce GT 325M] -10de:0a38 0000 0000 400 : GT216GL [Quadro 400] -10de:0a3c 0000 0000 fx880m : GT216GLM [Quadro FX 880M] -10de:0a60 0000 0000 g210 : GT218 [GeForce G210] -10de:0a62 0000 0000 205 : GT218 [GeForce 205] -10de:0a63 0000 0000 310 : GT218 [GeForce 310] -10de:0a65 0000 0000 210 : GT218 [GeForce 210] -10de:0a65 1043 8334 210 : EN210 SILENT -10de:0a65 1458 36a9 210 : GV-N210D3-1GI (rev. 6.0/6.1) -10de:0a65 1462 8094 210 : N210 [Geforce 210] PCIe graphics adapter -10de:0a66 0000 0000 310 : GT218 [GeForce 310] -10de:0a67 0000 0000 315 : GT218 [GeForce 315] -10de:0a68 0000 0000 g105m : GT218M [GeForce G 105M] -10de:0a69 0000 0000 g105m : GT218M [GeForce G 105M] -10de:0a6e 0000 0000 305m : GT218M [GeForce 305M] -10de:0a70 0000 0000 310m : GT218M [GeForce 310M] -10de:0a71 0000 0000 305m : GT218M [GeForce 305M] -10de:0a72 0000 0000 310m : GT218M [GeForce 310M] -10de:0a73 0000 0000 305m : GT218M [GeForce 305M] -10de:0a74 0000 0000 g210m : GT218M [GeForce G210M] -10de:0a74 1b0a 903a g210m : GeForce G210 -10de:0a75 0000 0000 310m : GT218M [GeForce 310M] -10de:0a78 0000 0000 fx380lp : GT218GL [Quadro FX 380 LP] -10de:0a7a 0000 0000 315m : GT218M [GeForce 315M] -10de:0a7a 104d 907e 315m : GeForce 315M -10de:0a7a 1179 fc50 315m : GeForce 315M -10de:0a7a 1179 fc61 315m : GeForce 315M -10de:0a7a 1179 fc71 315m : GeForce 315M -10de:0a7a 1179 fc90 315m : GeForce 315M -10de:0a7a 1179 fcc0 315m : GeForce 315M -10de:0a7a 1179 fcd0 315m : GeForce 315M -10de:0a7a 1179 fce2 315m : GeForce 315M -10de:0a7a 1179 fcf2 315m : GeForce 315M -10de:0a7a 1179 fd16 315m : GeForce 315M -10de:0a7a 1179 fd40 315m : GeForce 315M -10de:0a7a 1179 fd50 315m : GeForce 315M -10de:0a7a 1179 fd52 315m : GeForce 315M -10de:0a7a 1179 fd61 315m : GeForce 315M -10de:0a7a 1179 fd71 315m : GeForce 315M -10de:0a7a 1179 fd92 315m : GeForce 315M -10de:0a7a 1179 fd96 315m : GeForce 315M -10de:0a7a 1179 fdd0 315m : GeForce 315M -10de:0a7a 1179 fdd2 315m : GeForce 315M -10de:0a7a 1179 fdfe 315m : GeForce 315M -10de:0a7a 144d c0a2 315m : GeForce 315M -10de:0a7a 144d c0b2 315m : GeForce 315M -10de:0a7a 144d c581 315m : GeForce 315M -10de:0a7a 144d c587 315m : GeForce 315M -10de:0a7a 144d c588 315m : GeForce 315M -10de:0a7a 144d c597 315m : GeForce 315M -10de:0a7a 144d c606 315m : GeForce 315M -10de:0a7a 1462 aa51 315m : GeForce 405 -10de:0a7a 1462 aa58 315m : GeForce 405 -10de:0a7a 1462 ac71 315m : GeForce 405 -10de:0a7a 1462 ac81 315m : GeForce 315M -10de:0a7a 1462 ac82 315m : GeForce 405 -10de:0a7a 1462 ae33 315m : GeForce 405 -10de:0a7a 1642 3980 315m : GeForce 405 -10de:0a7a 17aa 3950 315m : GeForce 405M -10de:0a7a 17aa 397d 315m : GeForce 405M -10de:0a7a 1b0a 2091 315m : GeForce 315M -10de:0a7a 1b0a 90b4 315m : GeForce 405 -10de:0a7a 1bfd 0003 315m : GeForce 405 -10de:0a7a 1bfd 8006 315m : GeForce 405 -10de:0a7a 1bfd 8007 315m : GeForce 315M -10de:0a7b 0000 0000 505 : GT218 [GeForce 505] -10de:0a7c 0000 0000 fx380m : GT218GLM [Quadro FX 380M] -10de:0ca0 0000 0000 gt330 : GT215 [GeForce GT 330] -10de:0ca2 0000 0000 gt320 : GT215 [GeForce GT 320] -10de:0ca3 0000 0000 gt240 : GT215 [GeForce GT 240] -10de:0ca4 0000 0000 gt340 : GT215 [GeForce GT 340] -10de:0ca5 0000 0000 gt220 : GT215 [GeForce GT 220] -10de:0ca7 0000 0000 gt330 : GT215 [GeForce GT 330] -10de:0ca8 0000 0000 gts260m : GT215M [GeForce GTS 260M] -10de:0ca9 0000 0000 gts250m : GT215M [GeForce GTS 250M] -10de:0caf 0000 0000 gt335m : GT215M [GeForce GT 335M] -10de:0cb0 0000 0000 gts350m : GT215M [GeForce GTS 350M] -10de:0cb1 0000 0000 gts360m : GT215M [GeForce GTS 360M] -10de:0cbc 0000 0000 fx1800m : GT215GLM [Quadro FX 1800M] -10de:0dc0 0000 0000 gt440 : GF106 [GeForce GT 440] -10de:0dc4 0000 0000 gts450 : GF106 [GeForce GTS 450] -10de:0dc5 0000 0000 gts450 : GF106 [GeForce GTS 450 OEM] -10de:0dc6 0000 0000 gts450 : GF106 [GeForce GTS 450 OEM] -10de:0dcd 0000 0000 gt555m : GF106M [GeForce GT 555M] -10de:0dce 0000 0000 gt555m : GF106M [GeForce GT 555M] -10de:0dd1 0000 0000 gtx460m : GF106M [GeForce GTX 460M] -10de:0dd1 1558 8687 gtx460m : CLEVO/KAPOK W860CU -10de:0dd2 0000 0000 gt445m : GF106M [GeForce GT 445M] -10de:0dd3 0000 0000 gt435m : GF106M [GeForce GT 435M] -10de:0dd6 0000 0000 gt550m : GF106M [GeForce GT 550M] -10de:0dd8 0000 0000 2000 : GF106GL [Quadro 2000] -10de:0dd8 10de 0914 2000 : Quadro 2000D -10de:0dda 0000 0000 2000m : GF106GLM [Quadro 2000M] -10de:0de0 0000 0000 gt440 : GF108 [GeForce GT 440] -10de:0de1 0000 0000 gt430 : GF108 [GeForce GT 430] -10de:0de1 3842 1430 gt430 : GeForce GT 430 -10de:0de2 0000 0000 gt420 : GF108 [GeForce GT 420] -10de:0de3 0000 0000 gt635m : GF108M [GeForce GT 635M] -10de:0de4 0000 0000 gt520 : GF108 [GeForce GT 520] -10de:0de5 0000 0000 gt530 : GF108 [GeForce GT 530] -10de:0de7 0000 0000 gt610 : GF108 [GeForce GT 610] -10de:0de8 0000 0000 gt620m : GF108M [GeForce GT 620M] -10de:0de9 0000 0000 gt620m/630m/635m/640mle : GF108M [GeForce GT 620M/630M/635M/640M LE] -10de:0de9 1025 0692 gt620m/630m/635m/640mle : GeForce GT 620M -10de:0de9 1025 0725 gt620m/630m/635m/640mle : GeForce GT 620M -10de:0de9 1025 0728 gt620m/630m/635m/640mle : GeForce GT 620M -10de:0de9 1025 072b gt620m/630m/635m/640mle : GeForce GT 620M -10de:0de9 1025 072e gt620m/630m/635m/640mle : GeForce GT 620M -10de:0de9 1025 0753 gt620m/630m/635m/640mle : GeForce GT 620M -10de:0de9 1025 0754 gt620m/630m/635m/640mle : GeForce GT 620M -10de:0de9 17aa 3977 gt620m/630m/635m/640mle : GeForce GT 640M LE -10de:0de9 1b0a 2210 gt620m/630m/635m/640mle : GeForce GT 635M -10de:0dea 0000 0000 610m : GF108M [GeForce 610M] -10de:0dea 17aa 365a 610m : GeForce 615 -10de:0dea 17aa 365b 610m : GeForce 615 -10de:0dea 17aa 365e 610m : GeForce 615 -10de:0dea 17aa 3660 610m : GeForce 615 -10de:0dea 17aa 366c 610m : GeForce 615 -10de:0deb 0000 0000 gt555m : GF108M [GeForce GT 555M] -10de:0dec 0000 0000 gt525m : GF108M [GeForce GT 525M] -10de:0ded 0000 0000 gt520m : GF108M [GeForce GT 520M] -10de:0dee 0000 0000 gt415m : GF108M [GeForce GT 415M] -10de:0df0 0000 0000 gt425m : GF108M [GeForce GT 425M] -10de:0df1 0000 0000 gt420m : GF108M [GeForce GT 420M] -10de:0df2 0000 0000 gt435m : GF108M [GeForce GT 435M] -10de:0df3 0000 0000 gt420m : GF108M [GeForce GT 420M] -10de:0df4 0000 0000 gt540m : GF108M [GeForce GT 540M] -10de:0df4 152d 0952 gt540m : GeForce GT 630M -10de:0df4 152d 0953 gt540m : GeForce GT 630M -10de:0df5 0000 0000 gt525m : GF108M [GeForce GT 525M] -10de:0df6 0000 0000 gt550m : GF108M [GeForce GT 550M] -10de:0df7 0000 0000 gt520m : GF108M [GeForce GT 520M] -10de:0df8 0000 0000 600 : GF108GL [Quadro 600] -10de:0df9 0000 0000 500m : GF108GLM [Quadro 500M] -10de:0dfa 0000 0000 1000m : GF108GLM [Quadro 1000M] -10de:0e22 0000 0000 gtx460 : GF104 [GeForce GTX 460] -10de:0e22 1462 2322 gtx460 : N460GTX Cyclone 1GD5/OC -10de:0e23 0000 0000 gtx460 : GF104 [GeForce GTX 460 SE] -10de:0e24 0000 0000 gtx460 : GF104 [GeForce GTX 460 OEM] -10de:0e30 0000 0000 gtx470m : GF104M [GeForce GTX 470M] -10de:0e31 0000 0000 gtx485m : GF104M [GeForce GTX 485M] -10de:0e3a 0000 0000 3000m : GF104GLM [Quadro 3000M] -10de:0e3b 0000 0000 4000m : GF104GLM [Quadro 4000M] -10de:0f00 0000 0000 gt630 : GF108 [GeForce GT 630] -10de:0f01 0000 0000 gt620 : GF108 [GeForce GT 620] -10de:0f02 0000 0000 gt730 : GF108 [GeForce GT 730] -10de:0f06 0000 0000 gt730 : GF108 [GeForce GT 730] -10de:0fc0 0000 0000 gt640 : GK107 [GeForce GT 640 OEM] -10de:0fc1 0000 0000 gt640 : GK107 [GeForce GT 640] -10de:0fc2 0000 0000 gt630 : GK107 [GeForce GT 630 OEM] -10de:0fc6 0000 0000 gtx650 : GK107 [GeForce GTX 650] -10de:0fc6 1043 8428 gtx650 : GTX650-DC-1GD5 -10de:0fc8 0000 0000 gt740 : GK107 [GeForce GT 740] -10de:0fc9 0000 0000 gt730 : GK107 [GeForce GT 730] -10de:0fcd 0000 0000 gt755m : GK107M [GeForce GT 755M] -10de:0fce 0000 0000 gt640mle : GK107M [GeForce GT 640M LE] -10de:0fd1 0000 0000 gt650m : GK107M [GeForce GT 650M] -10de:0fd1 1043 1597 gt650m : GeForce GT 650M -10de:0fd1 1043 15a7 gt650m : GeForce GT 650M -10de:0fd1 1043 2103 gt650m : N56VZ -10de:0fd1 1043 2105 gt650m : GeForce GT 650M -10de:0fd1 1043 2141 gt650m : GeForce GT 650M -10de:0fd2 0000 0000 gt640m : GK107M [GeForce GT 640M] -10de:0fd2 1028 054f gt640m : GeForce GT 640M -10de:0fd2 1028 055f gt640m : GeForce GT 640M -10de:0fd2 1028 0595 gt640m : GeForce GT 640M LE -10de:0fd2 1028 05b2 gt640m : GeForce GT 640M LE -10de:0fd3 0000 0000 gt640mle : GK107M [GeForce GT 640M LE] -10de:0fd4 0000 0000 gtx660m : GK107M [GeForce GTX 660M] -10de:0fd5 0000 0000 gt650m : GK107M [GeForce GT 650M Mac Edition] -10de:0fd8 0000 0000 gt640m : GK107M [GeForce GT 640M Mac Edition] -10de:0fd9 0000 0000 gt645m : GK107M [GeForce GT 645M] -10de:0fdf 0000 0000 gt740m : GK107M [GeForce GT 740M] -10de:0fe0 0000 0000 gtx660m : GK107M [GeForce GTX 660M Mac Edition] -10de:0fe1 0000 0000 gt730m : GK107M [GeForce GT 730M] -10de:0fe2 0000 0000 gt745m : GK107M [GeForce GT 745M] -10de:0fe3 0000 0000 gt745m : GK107M [GeForce GT 745M] -10de:0fe3 103c 2b16 gt745m : GeForce GT 745A -10de:0fe3 17aa 3675 gt745m : GeForce GT 745A -10de:0fe4 0000 0000 gt750m : GK107M [GeForce GT 750M] -10de:0fe5 0000 0000 k340usm : GK107 [GeForce K340 USM] -10de:0fe9 0000 0000 gt750m : GK107M [GeForce GT 750M Mac Edition] -10de:0fea 0000 0000 gt755m : GK107M [GeForce GT 755M Mac Edition] -10de:0fec 0000 0000 710a : GK107M [GeForce 710A] -10de:0fed 0000 0000 820m : GK107M [GeForce 820M] -10de:0fee 0000 0000 810m : GK107M [GeForce 810M] -10de:0ff3 0000 0000 k420 : GK107GL [Quadro K420] -10de:0ff6 0000 0000 k1100m : GK107GLM [Quadro K1100M] -10de:0ff6 103c 197b k1100m : ZBook 15 -10de:0ff8 0000 0000 k500m : GK107GLM [Quadro K500M] -10de:0ff9 0000 0000 k2000d : GK107GL [Quadro K2000D] -10de:0ffa 0000 0000 k600 : GK107GL [Quadro K600] -10de:0ffb 0000 0000 k2000m : GK107GLM [Quadro K2000M] -10de:0ffc 0000 0000 k1000m : GK107GLM [Quadro K1000M] -10de:0ffe 0000 0000 k2000 : GK107GL [Quadro K2000] -10de:0fff 0000 0000 410 : GK107GL [Quadro 410] -10de:1001 0000 0000 gtxz : GK110B [GeForce GTX TITAN Z] -10de:1003 0000 0000 gtxtitanle : GK110 [GeForce GTX Titan LE] -10de:1004 0000 0000 gtx780 : GK110 [GeForce GTX 780] -10de:1004 3842 0784 gtx780 : GK110B [GeForce GTX 780 SC w/ ACX Cooler] -10de:1004 3842 1784 gtx780 : GK110B [GeForce GTX 780 Dual FTW w/ ACX Cooler] -10de:1004 3842 1788 gtx780 : GK110B [GeForce GTX 780 Dual Classified w/ ACX Cooler] -10de:1005 0000 0000 gtx : GK110 [GeForce GTX TITAN] -10de:1005 1043 8451 gtx : GTXTITAN-6GD5 -10de:1005 10de 1035 gtx : GeForce GTX Titan -10de:1005 3842 2790 gtx : GeForce GTX Titan -10de:1005 3842 2791 gtx : GeForce GTX Titan SC -10de:1005 3842 2793 gtx : GeForce GTX Titan SC Signature -10de:1005 3842 2794 gtx : GeForce GTX Titan SC Hydro Copper -10de:1005 3842 2795 gtx : GeForce GTX Titan SC Hydro Copper Signature -10de:1007 0000 0000 gtx780 : GK110 [GeForce GTX 780 Rev. 2] -10de:1008 0000 0000 gtx780 : GK110 [GeForce GTX 780 Ti 6GB] -10de:100a 0000 0000 gtx780 : GK110B [GeForce GTX 780 Ti] -10de:100c 0000 0000 gtxblack : GK110B [GeForce GTX TITAN Black] -10de:101e 0000 0000 k20x : GK110GL [Tesla K20X] -10de:101f 0000 0000 k20 : GK110GL [Tesla K20] -10de:1020 0000 0000 k20x : GK110GL [Tesla K20X] -10de:1021 0000 0000 k20xm : GK110GL [Tesla K20Xm] -10de:1022 0000 0000 k20c : GK110GL [Tesla K20c] -10de:1023 0000 0000 k40m : GK110BGL [Tesla K40m] -10de:1023 10de 097e k40m : 12GB Computational Accelerator -10de:1024 0000 0000 k40c : GK110BGL [Tesla K40c] -10de:1026 0000 0000 k20s : GK110GL [Tesla K20s] -10de:1027 0000 0000 k40st : GK110BGL [Tesla K40st] -10de:1028 0000 0000 k20m : GK110GL [Tesla K20m] -10de:1029 0000 0000 k40s : GK110BGL [Tesla K40s] -10de:102a 0000 0000 k40t : GK110BGL [Tesla K40t] -10de:102d 0000 0000 k80 : GK210GL [Tesla K80] -10de:102e 0000 0000 k40d : GK110BGL [Tesla K40d] -10de:102f 0000 0000 stellasolo : GK110BGL [Tesla Stella Solo] -10de:103a 0000 0000 k6000 : GK110GL [Quadro K6000] -10de:103c 0000 0000 k5200 : GK110GL [Quadro K5200] -10de:103f 0000 0000 stellasxm : GK110BGL [Tesla Stella SXM] -10de:1040 0000 0000 gt520 : GF119 [GeForce GT 520] -10de:1040 1043 83a0 gt520 : ENGT520 SILENT -10de:1042 0000 0000 510 : GF119 [GeForce 510] -10de:1048 0000 0000 605 : GF119 [GeForce 605] -10de:1049 0000 0000 gt620 : GF119 [GeForce GT 620 OEM] -10de:104a 0000 0000 gt610 : GF119 [GeForce GT 610] -10de:104a 10b0 104a gt610 : Gainward GeForce GT 610 -10de:104b 0000 0000 gt625 : GF119 [GeForce GT 625 OEM] -10de:104c 0000 0000 gt705 : GF119 [GeForce GT 705] -10de:104d 0000 0000 gt710 : GF119 [GeForce GT 710] -10de:1050 0000 0000 gt520m : GF119M [GeForce GT 520M] -10de:1051 0000 0000 gt520mx : GF119M [GeForce GT 520MX] -10de:1052 0000 0000 gt520m : GF119M [GeForce GT 520M] -10de:1054 0000 0000 410m : GF119M [GeForce 410M] -10de:1055 0000 0000 410m : GF119M [GeForce 410M] -10de:1057 0000 0000 nvs4200m : GF119M [Quadro NVS 4200M] -10de:1058 0000 0000 610m : GF119M [GeForce 610M] -10de:1058 103c 2aed 610m : GeForce 610 -10de:1058 103c 2af1 610m : GeForce 610 -10de:1058 1043 10ac 610m : GeForce GT 610M -10de:1058 1043 10bc 610m : GeForce GT 610M -10de:1058 1043 1652 610m : GeForce GT 610M -10de:1058 17aa 367a 610m : GeForce 610M -10de:1058 17aa 3682 610m : GeForce 800A -10de:1058 17aa 3687 610m : GeForce 800A -10de:1058 17aa 3692 610m : GeForce 705A -10de:1058 17aa 3695 610m : GeForce 800A -10de:1058 17aa a117 610m : GeForce 610M -10de:1059 0000 0000 610m : GF119M [GeForce 610M] -10de:105a 0000 0000 610m : GF119M [GeForce 610M] -10de:105a 1043 2111 610m : GeForce GT 610M -10de:105a 1043 2112 610m : GeForce GT 610M -10de:105b 0000 0000 705m : GF119M [GeForce 705M] -10de:105b 103c 2afb 705m : GeForce 705A -10de:105b 17aa 309d 705m : GeForce 705A -10de:105b 17aa 30b1 705m : GeForce 800A -10de:105b 17aa 30f3 705m : GeForce 705A -10de:105b 17aa 36a1 705m : GeForce 800A -10de:1080 0000 0000 gtx580 : GF110 [GeForce GTX 580] -10de:1081 0000 0000 gtx570 : GF110 [GeForce GTX 570] -10de:1081 10de 087e gtx570 : Leadtek WinFast GTX 570 -10de:1082 0000 0000 gtx560 : GF110 [GeForce GTX 560 Ti OEM] -10de:1084 0000 0000 gtx560 : GF110 [GeForce GTX 560 OEM] -10de:1086 0000 0000 gtx570 : GF110 [GeForce GTX 570 Rev. 2] -10de:1087 0000 0000 gtx560 : GF110 [GeForce GTX 560 Ti 448 Cores] -10de:1088 0000 0000 gtx590 : GF110 [GeForce GTX 590] -10de:1089 0000 0000 gtx580 : GF110 [GeForce GTX 580 Rev. 2] -10de:108b 0000 0000 gtx580 : GF110 [GeForce GTX 580] -10de:108e 0000 0000 c2090 : GF110GL [Tesla C2090] -10de:1091 0000 0000 m2090 : GF110GL [Tesla M2090] -10de:1091 10de 088e m2090 : Tesla X2090 -10de:1091 10de 0891 m2090 : Tesla X2090 -10de:1091 10de 0974 m2090 : Tesla X2090 -10de:1091 10de 098d m2090 : Tesla X2090 -10de:1094 0000 0000 m2075 : GF110GL [Tesla M2075] -10de:1094 10de 0888 m2075 : Tesla M2075 -10de:1096 0000 0000 c2050c2075 : GF110GL [Tesla C2050 / C2075] -10de:1096 10de 0910 c2050c2075 : Tesla C2075 -10de:1096 10de 0911 c2050c2075 : Tesla C2050 -10de:109a 0000 0000 5010m : GF100GLM [Quadro 5010M] -10de:109b 0000 0000 7000 : GF100GL [Quadro 7000] -10de:109b 10de 0918 7000 : Quadro 7000 -10de:10c0 0000 0000 9300gs : GT218 [GeForce 9300 GS Rev. 2] -10de:10c3 0000 0000 8400gs3 : GT218 [GeForce 8400 GS Rev. 3] -10de:10c5 0000 0000 405 : GT218 [GeForce 405] -10de:1180 0000 0000 gtx680 : GK104 [GeForce GTX 680] -10de:1180 1043 83f1 gtx680 : GTX680-DC2-2GD5 -10de:1180 3842 3682 gtx680 : GeForce GTX 680 Mac Edition -10de:1182 0000 0000 gtx760 : GK104 [GeForce GTX 760 Ti] -10de:1183 0000 0000 gtx660 : GK104 [GeForce GTX 660 Ti] -10de:1184 0000 0000 gtx770 : GK104 [GeForce GTX 770] -10de:1185 0000 0000 gtx660 : GK104 [GeForce GTX 660 OEM] -10de:1185 10de 106f gtx660 : GK104 [GeForce GTX 760 OEM] -10de:1187 0000 0000 gtx760 : GK104 [GeForce GTX 760] -10de:1188 0000 0000 gtx690 : GK104 [GeForce GTX 690] -10de:1189 0000 0000 gtx670 : GK104 [GeForce GTX 670] -10de:1189 10de 1074 gtx670 : GK104 [GeForce GTX 760 Ti OEM] -10de:118e 0000 0000 gtx760 : GK104 [GeForce GTX 760 OEM] -10de:118f 0000 0000 k10 : GK104GL [Tesla K10] -10de:1191 0000 0000 gtx760 : GK104 [GeForce GTX 760 Rev. 2] -10de:1193 0000 0000 gtx760 : GK104 [GeForce GTX 760 Ti OEM] -10de:1194 0000 0000 k8 : GK104GL [Tesla K8] -10de:1195 0000 0000 gtx660 : GK104 [GeForce GTX 660 Rev. 2] -10de:1198 0000 0000 gtx880m : GK104M [GeForce GTX 880M] -10de:1199 0000 0000 gtx870m : GK104M [GeForce GTX 870M] -10de:119a 0000 0000 gtx860m : GK104M [GeForce GTX 860M] -10de:119d 0000 0000 gtx775m : GK104M [GeForce GTX 775M Mac Edition] -10de:119e 0000 0000 gtx780m : GK104M [GeForce GTX 780M Mac Edition] -10de:119f 0000 0000 gtx780m : GK104M [GeForce GTX 780M] -10de:11a0 0000 0000 gtx680m : GK104M [GeForce GTX 680M] -10de:11a1 0000 0000 gtx670mx : GK104M [GeForce GTX 670MX] -10de:11a2 0000 0000 gtx675mx : GK104M [GeForce GTX 675MX Mac Edition] -10de:11a3 0000 0000 gtx680mx : GK104M [GeForce GTX 680MX] -10de:11a3 106b 010d gtx680mx : iMac 13,2 -10de:11a7 0000 0000 gtx675mx : GK104M [GeForce GTX 675MX] -10de:11b4 0000 0000 k4200 : GK104GL [Quadro K4200] -10de:11b6 0000 0000 k3100m : GK104GLM [Quadro K3100M] -10de:11b7 0000 0000 k4100m : GK104GLM [Quadro K4100M] -10de:11b8 0000 0000 k5100m : GK104GLM [Quadro K5100M] -10de:11ba 0000 0000 k5000 : GK104GL [Quadro K5000] -10de:11bb 0000 0000 4100 : GK104GL [Quadro 4100] -10de:11bc 0000 0000 k5000m : GK104GLM [Quadro K5000M] -10de:11bd 0000 0000 k4000m : GK104GLM [Quadro K4000M] -10de:11be 0000 0000 k3000m : GK104GLM [Quadro K3000M] -10de:11c0 0000 0000 gtx660 : GK106 [GeForce GTX 660] -10de:11c2 0000 0000 gtx650 : GK106 [GeForce GTX 650 Ti Boost] -10de:11c2 1043 845b gtx650 : GeForce GTX 650 Ti Boost DirectCU II OC -10de:11c2 1462 2874 gtx650 : GeForce GTX 650 Ti Boost TwinFrozr II OC -10de:11c2 1569 11c2 gtx650 : GeForce GTX 650 Ti Boost OC -10de:11c2 19da 1281 gtx650 : GeForce GTX 650 Ti Boost OC -10de:11c2 3842 3657 gtx650 : GeForce GTX 650 Ti Boost -10de:11c2 3842 3658 gtx650 : GeForce GTX 650 Ti Boost Superclocked -10de:11c3 0000 0000 gtx650 : GK106 [GeForce GTX 650 Ti OEM] -10de:11c3 10de 1030 gtx650 : GeForce GTX 650 Ti OEM -10de:11c4 0000 0000 gtx645 : GK106 [GeForce GTX 645 OEM] -10de:11c5 0000 0000 gt740 : GK106 [GeForce GT 740] -10de:11c6 0000 0000 gtx650 : GK106 [GeForce GTX 650 Ti] -10de:11c7 0000 0000 gtx750 : GK106 [GeForce GTX 750 Ti] -10de:11c8 0000 0000 gtx650 : GK106 [GeForce GTX 650 OEM] -10de:11cb 0000 0000 gt740 : GK106 [GeForce GT 740] -10de:11e0 0000 0000 gtx770m : GK106M [GeForce GTX 770M] -10de:11e1 0000 0000 gtx765m : GK106M [GeForce GTX 765M] -10de:11e2 0000 0000 gtx765m : GK106M [GeForce GTX 765M] -10de:11e3 0000 0000 gtx760m : GK106M [GeForce GTX 760M] -10de:11e3 17aa 3683 gtx760m : GeForce GTX 760A -10de:11fa 0000 0000 k4000 : GK106GL [Quadro K4000] -10de:11fc 0000 0000 k2100m : GK106GLM [Quadro K2100M] -10de:1200 0000 0000 gtx560 : GF114 [GeForce GTX 560 Ti] -10de:1201 0000 0000 gtx560 : GF114 [GeForce GTX 560] -10de:1202 0000 0000 gtx560 : GF114 [GeForce GTX 560 Ti OEM] -10de:1203 0000 0000 gtx460 : GF114 [GeForce GTX 460 SE v2] -10de:1205 0000 0000 gtx460 : GF114 [GeForce GTX 460 v2] -10de:1206 0000 0000 gtx555 : GF114 [GeForce GTX 555] -10de:1207 0000 0000 gt645 : GF114 [GeForce GT 645 OEM] -10de:1208 0000 0000 gtx560 : GF114 [GeForce GTX 560 SE] -10de:1210 0000 0000 gtx570m : GF114M [GeForce GTX 570M] -10de:1211 0000 0000 gtx580m : GF114M [GeForce GTX 580M] -10de:1212 0000 0000 gtx675m : GF114M [GeForce GTX 675M] -10de:1213 0000 0000 gtx670m : GF114M [GeForce GTX 670M] -10de:1241 0000 0000 gt545 : GF116 [GeForce GT 545 OEM] -10de:1243 0000 0000 gt545 : GF116 [GeForce GT 545] -10de:1244 0000 0000 gtx550 : GF116 [GeForce GTX 550 Ti] -10de:1245 0000 0000 gts450 : GF116 [GeForce GTS 450 Rev. 2] -10de:1246 0000 0000 gt550m : GF116M [GeForce GT 550M] -10de:1249 0000 0000 gts4503 : GF116 [GeForce GTS 450 Rev. 3] -10de:124b 0000 0000 gt640 : GF116 [GeForce GT 640 OEM] -10de:1251 0000 0000 gt560m : GF116M [GeForce GT 560M] -10de:1280 0000 0000 gt635 : GK208 [GeForce GT 635] -10de:1281 0000 0000 gt710 : GK208 [GeForce GT 710] -10de:1282 0000 0000 gt640 : GK208 [GeForce GT 640 Rev. 2] -10de:1284 0000 0000 gt630 : GK208 [GeForce GT 630 Rev. 2] -10de:1286 0000 0000 gt720 : GK208 [GeForce GT 720] -10de:1287 0000 0000 gt730 : GK208B [GeForce GT 730] -10de:1288 0000 0000 gt720 : GK208B [GeForce GT 720] -10de:1289 0000 0000 gt710 : GK208 [GeForce GT 710] -10de:128b 0000 0000 gt710 : GK208B [GeForce GT 710] -10de:128b 1043 85f7 gt710 : GT710-SL-1GD5 -10de:1290 0000 0000 gt730m : GK208M [GeForce GT 730M] -10de:1290 103c 2afa gt730m : GeForce GT 730A -10de:1290 103c 2b04 gt730m : GeForce GT 730A -10de:1290 1043 13ad gt730m : GeForce GT 730M -10de:1290 1043 13cd gt730m : GeForce GT 730M -10de:1291 0000 0000 gt735m : GK208M [GeForce GT 735M] -10de:1292 0000 0000 gt740m : GK208M [GeForce GT 740M] -10de:1292 17aa 3675 gt740m : GeForce GT 740A -10de:1292 17aa 367c gt740m : GeForce GT 740A -10de:1292 17aa 3684 gt740m : GeForce GT 740A -10de:1293 0000 0000 gt730m : GK208M [GeForce GT 730M] -10de:1294 0000 0000 gt740m : GK208M [GeForce GT 740M] -10de:1295 0000 0000 710m : GK208M [GeForce 710M] -10de:1295 103c 2b0d 710m : GeForce 710A -10de:1295 103c 2b0f 710m : GeForce 710A -10de:1295 103c 2b11 710m : GeForce 710A -10de:1295 103c 2b20 710m : GeForce 810A -10de:1295 103c 2b21 710m : GeForce 810A -10de:1295 103c 2b22 710m : GeForce 810A -10de:1295 17aa 367a 710m : GeForce 805A -10de:1295 17aa 367c 710m : GeForce 710A -10de:1296 0000 0000 825m : GK208M [GeForce 825M] -10de:1298 0000 0000 gt720m : GK208M [GeForce GT 720M] -10de:1299 0000 0000 920m : GK208BM [GeForce 920M] -10de:1299 17aa 30bb 920m : GeForce 920A -10de:1299 17aa 30df 920m : GeForce 920A -10de:1299 17aa 36a7 920m : GeForce 920A -10de:1299 17aa 36af 920m : GeForce 920M -10de:129a 0000 0000 910m : GK208BM [GeForce 910M] -10de:12b9 0000 0000 k610m : GK208GLM [Quadro K610M] -10de:12ba 0000 0000 k510m : GK208GLM [Quadro K510M] -10de:1340 0000 0000 830m : GM108M [GeForce 830M] -10de:1340 103c 2b2b 830m : GeForce 830A -10de:1341 0000 0000 840m : GM108M [GeForce 840M] -10de:1341 17aa 3697 840m : GeForce 840A -10de:1341 17aa 3699 840m : GeForce 840A -10de:1341 17aa 369c 840m : GeForce 840A -10de:1344 0000 0000 845m : GM108M [GeForce 845M] -10de:1346 0000 0000 930m : GM108M [GeForce 930M] -10de:1347 0000 0000 940m : GM108M [GeForce 940M] -10de:1348 0000 0000 945m945a : GM108M [GeForce 945M / 945A] -10de:1349 0000 0000 930m : GM108M [GeForce 930M] -10de:134b 0000 0000 940mx : GM108M [GeForce 940MX] -10de:134d 0000 0000 940mx : GM108M [GeForce 940MX] -10de:134d 17aa 2248 940mx : ThinkPad T570 -10de:134e 0000 0000 930mx : GM108M [GeForce 930MX] -10de:134f 0000 0000 920mx : GM108M [GeForce 920MX] -10de:137a 0000 0000 k620m : GM108GLM [Quadro K620M / Quadro M500M] -10de:137a 17aa 505a k620m : Quadro M500M -10de:137b 0000 0000 m520 : GM108GLM [Quadro M520 Mobile] -10de:137d 0000 0000 940a : GM108M [GeForce 940A] -10de:1380 0000 0000 gtx750 : GM107 [GeForce GTX 750 Ti] -10de:1381 0000 0000 gtx750 : GM107 [GeForce GTX 750] -10de:1382 0000 0000 gtx745 : GM107 [GeForce GTX 745] -10de:1390 0000 0000 845m : GM107M [GeForce 845M] -10de:1391 0000 0000 gtx850m : GM107M [GeForce GTX 850M] -10de:1391 17aa 3697 gtx850m : GeForce GTX 850A -10de:1391 17aa a125 gtx850m : GeForce GTX 850A -10de:1392 0000 0000 gtx860m : GM107M [GeForce GTX 860M] -10de:1393 0000 0000 840m : GM107M [GeForce 840M] -10de:1398 0000 0000 845m : GM107M [GeForce 845M] -10de:1399 0000 0000 945m : GM107M [GeForce 945M] -10de:139a 0000 0000 gtx950m : GM107M [GeForce GTX 950M] -10de:139a 17aa 362c gtx950m : GeForce GTX 950A -10de:139a 17aa 362f gtx950m : GeForce GTX 950A -10de:139a 17aa 363f gtx950m : GeForce GTX 950A -10de:139a 17aa 3640 gtx950m : GeForce GTX 950A -10de:139a 17aa 3647 gtx950m : GeForce GTX 950A -10de:139a 17aa 36b9 gtx950m : GeForce GTX 950A -10de:139b 0000 0000 gtx960m : GM107M [GeForce GTX 960M] -10de:139b 1028 06e4 gtx960m : XPS 15 9550 -10de:139b 103c 2b4c gtx960m : GeForce GTX 960A -10de:139c 0000 0000 940m : GM107M [GeForce 940M] -10de:139d 0000 0000 gtx750 : GM107M [GeForce GTX 750 Ti] -10de:13b0 0000 0000 m2000m : GM107GLM [Quadro M2000M] -10de:13b1 0000 0000 m1000m : GM107GLM [Quadro M1000M] -10de:13b2 0000 0000 m600m : GM107GLM [Quadro M600M] -10de:13b3 0000 0000 k2200m : GM107GLM [Quadro K2200M] -10de:13b4 0000 0000 m620 : GM107GLM [Quadro M620 Mobile] -10de:13b6 0000 0000 m1200 : GM107GLM [Quadro M1200 Mobile] -10de:13ba 0000 0000 k2200 : GM107GL [Quadro K2200] -10de:13bb 0000 0000 k620 : GM107GL [Quadro K620] -10de:13bc 0000 0000 k1200 : GM107GL [Quadro K1200] -10de:13bd 0000 0000 m10 : GM107GL [Tesla M10] -10de:13bd 10de 110a m10 : GRID M40 -10de:13bd 10de 1160 m10 : Tesla M10 -10de:13bd 10de 11d2 m10 : GRID M10-8Q -10de:13c0 0000 0000 gtx980 : GM204 [GeForce GTX 980] -10de:13c0 1043 8504 gtx980 : GTX980-4GD5 -10de:13c2 0000 0000 gtx970 : GM204 [GeForce GTX 970] -10de:13d7 0000 0000 gtx980m : GM204M [GeForce GTX 980M] -10de:13d8 0000 0000 gtx970m : GM204M [GeForce GTX 970M] -10de:13d9 0000 0000 gtx965m : GM204M [GeForce GTX 965M] -10de:13da 0000 0000 gtx980 : GM204M [GeForce GTX 980 Mobile] -10de:13e7 0000 0000 gtx980 : GM204GL [GeForce GTX 980 Engineering Sample] -10de:13f0 0000 0000 m5000 : GM204GL [Quadro M5000] -10de:13f1 0000 0000 m4000 : GM204GL [Quadro M4000] -10de:13f2 0000 0000 m60 : GM204GL [Tesla M60] -10de:13f2 10de 114d m60 : GRID M60-1Q -10de:13f2 10de 114e m60 : GRID M60-2Q -10de:13f2 10de 1150 m60 : GRID M60-8Q -10de:13f2 10de 11b0 m60 : GRID M60-4A -10de:13f3 0000 0000 m6 : GM204GL [Tesla M6] -10de:13f3 10de 1184 m6 : GRID M6-8Q -10de:13f8 0000 0000 m5000mm5000 : GM204GLM [Quadro M5000M / M5000 SE] -10de:13f9 0000 0000 m4000m : GM204GLM [Quadro M4000M] -10de:13fa 0000 0000 m3000m : GM204GLM [Quadro M3000M] -10de:13fa 10de 11c9 m3000m : Quadro M3000 SE -10de:13fb 0000 0000 m5500 : GM204GLM [Quadro M5500] -10de:1401 0000 0000 gtx960 : GM206 [GeForce GTX 960] -10de:1402 0000 0000 gtx950 : GM206 [GeForce GTX 950] -10de:1406 0000 0000 gtx960 : GM206 [GeForce GTX 960 OEM] -10de:1407 0000 0000 gtx750 : GM206 [GeForce GTX 750 v2] -10de:1427 0000 0000 gtx965m : GM206M [GeForce GTX 965M] -10de:1430 0000 0000 m2000 : GM206GL [Quadro M2000] -10de:1431 0000 0000 m4 : GM206GL [Tesla M4] -10de:1436 0000 0000 m2200 : GM206GLM [Quadro M2200 Mobile] -10de:15f0 0000 0000 gp100 : GP100GL [Quadro GP100] -10de:15f7 0000 0000 p100 : GP100GL [Tesla P100 PCIe 12GB] -10de:15f8 0000 0000 p100 : GP100GL [Tesla P100 PCIe 16GB] -10de:15f9 0000 0000 p100 : GP100GL [Tesla P100 SXM2 16GB] -10de:1617 0000 0000 gtx980m : GM204M [GeForce GTX 980M] -10de:1618 0000 0000 gtx970m : GM204M [GeForce GTX 970M] -10de:1619 0000 0000 gtx965m : GM204M [GeForce GTX 965M] -10de:161a 0000 0000 gtx980 : GM204M [GeForce GTX 980 Mobile] -10de:1667 0000 0000 gtx965m : GM204M [GeForce GTX 965M] -10de:174d 0000 0000 mx130 : GM108M [GeForce MX130] -10de:174e 0000 0000 mx110 : GM108M [GeForce MX110] -10de:17c2 0000 0000 gtx : GM200 [GeForce GTX TITAN X] -10de:17c8 0000 0000 gtx980 : GM200 [GeForce GTX 980 Ti] -10de:17f0 0000 0000 m6000 : GM200GL [Quadro M6000] -10de:17f1 0000 0000 m6000 : GM200GL [Quadro M6000 24GB] -10de:17fd 0000 0000 m40 : GM200GL [Tesla M40] -10de:1b06 0000 0000 gtx1080 : GP102 [GeForce GTX 1080 Ti] -10de:1b30 0000 0000 p6000 : GP102GL [Quadro P6000] -10de:1b38 0000 0000 p40 : GP102GL [Tesla P40] -10de:1b80 0000 0000 gtx1080 : GP104 [GeForce GTX 1080] -10de:1b81 0000 0000 gtx1070 : GP104 [GeForce GTX 1070] -10de:1b82 0000 0000 gtx1070 : GP104 [GeForce GTX 1070 Ti] -10de:1b83 0000 0000 gtx1060 : GP104 [GeForce GTX 1060 6GB] -10de:1b84 0000 0000 gtx1060 : GP104 [GeForce GTX 1060 3GB] -10de:1ba0 0000 0000 gtx1080 : GP104M [GeForce GTX 1080 Mobile] -10de:1ba1 0000 0000 gtx1070 : GP104M [GeForce GTX 1070 Mobile] -10de:1ba1 1458 1651 gtx1070 : GeForce GTX 1070 Max-Q -10de:1ba1 1462 11e8 gtx1070 : GeForce GTX 1070 Max-Q -10de:1ba1 1462 11e9 gtx1070 : GeForce GTX 1070 Max-Q -10de:1ba1 1558 9501 gtx1070 : GeForce GTX 1070 Max-Q -10de:1ba2 0000 0000 gtx1070 : GP104M [GeForce GTX 1070 Mobile] -10de:1bad 0000 0000 gtx1070 : GP104 [GeForce GTX 1070 Engineering Sample] -10de:1bb0 0000 0000 p5000 : GP104GL [Quadro P5000] -10de:1bb1 0000 0000 p4000 : GP104GL [Quadro P4000] -10de:1bb3 0000 0000 p4 : GP104GL [Tesla P4] -10de:1bb4 0000 0000 p6 : GP104GL [Tesla P6] -10de:1bb5 0000 0000 p5200 : GP104GLM [Quadro P5200 Mobile] -10de:1bb5 103c 842f p5200 : P5200 [Zbook 17 G5 mobile workstation] -10de:1bb6 0000 0000 p5000 : GP104GLM [Quadro P5000 Mobile] -10de:1bb7 0000 0000 p4000 : GP104GLM [Quadro P4000 Mobile] -10de:1bb7 1462 11e9 p4000 : Quadro P4000 Max-Q -10de:1bb8 0000 0000 p3000 : GP104GLM [Quadro P3000 Mobile] -10de:1bb9 0000 0000 p4200 : GP104GLM [Quadro P4200 Mobile] -10de:1bb9 103c 842f p4200 : P4200 [Zbook 17 G5 mobile workstation] -10de:1bbb 0000 0000 p3200 : GP104GLM [Quadro P3200 Mobile] -10de:1bbb 103c 842f p3200 : P3200 [Zbook 17 G5 moble workstation] -10de:1be0 0000 0000 gtx1080 : GP104BM [GeForce GTX 1080 Mobile] -10de:1be0 1028 07c0 gtx1080 : GeForce GTX 1080 Max-Q -10de:1be0 1458 355b gtx1080 : GeForce GTX 1080 Max-Q -10de:1be1 0000 0000 gtx1070 : GP104BM [GeForce GTX 1070 Mobile] -10de:1c02 0000 0000 gtx1060 : GP106 [GeForce GTX 1060 3GB] -10de:1c03 0000 0000 gtx1060 : GP106 [GeForce GTX 1060 6GB] -10de:1c04 0000 0000 gtx1060 : GP106 [GeForce GTX 1060 5GB] -10de:1c06 0000 0000 gtx1060 : GP106 [GeForce GTX 1060 6GB Rev. 2] -10de:1c20 0000 0000 gtx1060 : GP106M [GeForce GTX 1060 Mobile] -10de:1c20 17aa 39b9 gtx1060 : GeForce GTX 1060 Max-Q 3GB -10de:1c21 0000 0000 gtx1050 : GP106M [GeForce GTX 1050 Ti Mobile] -10de:1c22 0000 0000 gtx1050 : GP106M [GeForce GTX 1050 Mobile] -10de:1c30 0000 0000 p2000 : GP106GL [Quadro P2000] -10de:1c60 0000 0000 gtx1060 : GP106BM [GeForce GTX 1060 Mobile 6GB] -10de:1c60 103c 8390 gtx1060 : GeForce GTX 1060 Max-Q 6GB -10de:1c61 0000 0000 gtx1050 : GP106BM [GeForce GTX 1050 Ti Mobile] -10de:1c62 0000 0000 gtx1050 : GP106BM [GeForce GTX 1050 Mobile] -10de:1c81 0000 0000 gtx1050 : GP107 [GeForce GTX 1050] -10de:1c82 0000 0000 gtx1050 : GP107 [GeForce GTX 1050 Ti] -10de:1c83 0000 0000 gtx1050 : GP107 [GeForce GTX 1050 3GB] -10de:1c8c 0000 0000 gtx1050 : GP107M [GeForce GTX 1050 Ti Mobile] -10de:1c8d 0000 0000 gtx1050 : GP107M [GeForce GTX 1050 Mobile] -10de:1c8f 0000 0000 gtx1050 : GP107M [GeForce GTX 1050 Ti Max-Q] -10de:1c92 0000 0000 gtx1050 : GP107M [GeForce GTX 1050 Mobile] -10de:1cb1 0000 0000 p1000 : GP107GL [Quadro P1000] -10de:1cb2 0000 0000 p600 : GP107GL [Quadro P600] -10de:1cb3 0000 0000 p400 : GP107GL [Quadro P400] -10de:1cb6 0000 0000 p620 : GP107GL [Quadro P620] -10de:1cba 0000 0000 p2000 : GP107GLM [Quadro P2000 Mobile] -10de:1cba 103c 842c p2000 : P2000 [Zbook 15 G5 mobile workstation] -10de:1cba 103c 842f p2000 : P2000 [Zbook 17 G5 mobile workstation] -10de:1cbb 0000 0000 p1000 : GP107GLM [Quadro P1000 Mobile] -10de:1cbb 103c 8429 p1000 : P1000 [Zbook Studio G5 mobile workstation] -10de:1cbb 103c 842c p1000 : P1000 [Zbook 15 G5 mobile workstation] -10de:1cbb 103c 842f p1000 : P1000 [Zbook 17 G5 mobile workstation] -10de:1cbb 103c 8451 p1000 : P1000 [Zbook Studio x360 G5 mobile workstation] -10de:1cbc 0000 0000 p600 : GP107GLM [Quadro P600 Mobile] -10de:1ccc 0000 0000 gtx1050 : GP107BM [GeForce GTX 1050 Ti Mobile] -10de:1ccd 0000 0000 gtx1050 : GP107BM [GeForce GTX 1050 Mobile] -10de:1d01 0000 0000 gt1030 : GP108 [GeForce GT 1030] -10de:1d10 0000 0000 mx150 : GP108M [GeForce MX150] -10de:1d12 0000 0000 mx150 : GP108M [GeForce MX150] -10de:1d12 1d72 1701 mx150 : Mi Notebook Pro [GeForce MX150] -10de:1d33 0000 0000 p500 : GP108GLM [Quadro P500 Mobile] -10de:1db1 0000 0000 v100 : GV100GL [Tesla V100 SXM2 16GB] -10de:1db3 0000 0000 v100fhhl : GV100GL [Tesla V100 FHHL 16GB] -10de:1db4 0000 0000 v100 : GV100GL [Tesla V100 PCIe 16GB] -10de:1db5 0000 0000 v100 : GV100GL [Tesla V100 SXM2 32GB] -10de:1db6 0000 0000 v100 : GV100GL [Tesla V100 PCIe 32GB] -10de:1db7 0000 0000 v100 : GV100GL [Tesla V100 DGXS 32GB] -10de:1dba 0000 0000 gv100 : GV100GL [Quadro GV100] -10de:1dba 10de 12eb gv100 : TITAN V CEO Edition -10de:1e07 0000 0000 rtx2080 : TU102 [GeForce RTX 2080 Ti] -10de:1e3c 0000 0000 rtx6000 : TU102GL [Quadro RTX 6000] -10de:1e87 0000 0000 rtx2080 : TU104 [GeForce RTX 2080] -10de:1eab 0000 0000 rtx2080 : TU104M [GeForce RTX 2080 Mobile] -10de:1f07 0000 0000 rtx2070 : TU106 [GeForce RTX 2070] diff --git a/llvm/lib/OffloadArch/nvidia/vendor_specific_capabilities.cpp b/llvm/lib/OffloadArch/nvidia/vendor_specific_capabilities.cpp deleted file mode 100644 index 48076a16b5d77d..00000000000000 --- a/llvm/lib/OffloadArch/nvidia/vendor_specific_capabilities.cpp +++ /dev/null @@ -1,41 +0,0 @@ -//===-- offload-arch/OffloadArch.cpp ----------*- 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 -// -//===----------------------------------------------------------------------===// -/// -/// \file nvidia/vendor_specific_capabilities.cpp -/// -/// Implementation of vendor specific runtime capabilities -/// -//===----------------------------------------------------------------------===// - -#include "llvm/OffloadArch/OffloadArch.h" -#include -#include -#include -#include -#include - -std::string getNVPTXCapabilities(uint16_t vid, uint16_t devid, - const std::string &oa) { - std::string nvidia_capabilities(oa); -#if 0 - // This is how they could set requirements for specific version of nvidia driver - std::string file_contents = - getFileContents(std::string("/sys/module/nvidia/version")); - if (!file_contents.empty()) { - // parse nvidia kernel module version and release - int ver, rel; - char sbuf[16]; - sscanf(file_contents.c_str(), "%d.%d\n", &ver, &rel); - snprintf(sbuf, 16, "v%d.%d", ver, rel); - nvidia_capabilities.append(":"); - nvidia_capabilities.append(sbuf); - } - // FIXME: Add capability for running cuda version -#endif - return nvidia_capabilities; -} diff --git a/llvm/lib/OffloadArch/offload-arch/CMakeLists.txt b/llvm/lib/OffloadArch/offload-arch/CMakeLists.txt deleted file mode 100644 index 686d40d07bd9a7..00000000000000 --- a/llvm/lib/OffloadArch/offload-arch/CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ -if(CMAKE_HOST_UNIX) -add_llvm_tool(offload-arch - ${CMAKE_CURRENT_SOURCE_DIR}/offload-arch.cpp - DEPENDS generated-table LLVMOffloadArch -) -target_link_libraries(offload-arch PRIVATE LLVMOffloadArch) - -if(CMAKE_HOST_UNIX) - set(COMPILER_LINK_OR_COPY create_symlink) - set(OFFARCH_NAME offload-arch) -else() - set(COMPILER_LINK_OR_COPY copy) - set(OFFARCH_NAME bin\\offload-arch.exe) - set(WINPREFIX bin\\) -endif() - -add_custom_target( - amdgpu-offload-arch ALL - COMMAND ${CMAKE_COMMAND} -E ${COMPILER_LINK_OR_COPY} ${OFFARCH_NAME} "${WINPREFIX}amdgpu-offload-arch" - DEPENDS offload-arch) -add_custom_target( - nvidia-arch ALL - COMMAND ${CMAKE_COMMAND} -E ${COMPILER_LINK_OR_COPY} ${OFFARCH_NAME} "${WINPREFIX}nvidia-arch" - DEPENDS offload-arch) - -install(PROGRAMS - ${CMAKE_CURRENT_BINARY_DIR}/amdgpu-offload-arch - ${CMAKE_CURRENT_BINARY_DIR}/nvidia-arch - DESTINATION bin - COMPONENT offload-arch) -endif() diff --git a/llvm/lib/OffloadArch/offload-arch/offload-arch.cpp b/llvm/lib/OffloadArch/offload-arch/offload-arch.cpp deleted file mode 100644 index 94b1f0160b180f..00000000000000 --- a/llvm/lib/OffloadArch/offload-arch/offload-arch.cpp +++ /dev/null @@ -1,218 +0,0 @@ -//===-- offload-arch/OffloadArch.cpp ----------*- 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 -// -//===----------------------------------------------------------------------===// -/// -/// \file -/// Implementation of LLVM offload-arch tool and library (libLLVMOffloadArch.a) -/// The offload-arch tool has alias commands "amdgpu-offload-arch" and -/// "nvidia-arch". The alias commands are symbolic links to offload-arch. -/// -/// With no options, offload-arch prints the offload-arch for the current -/// system to stdout. offload-arch has options for querying vendor specific -/// runtime capabilities and for querying the offload-arch of offload images -/// that are embedded into application binaries. See help text below for -/// descriptions of these options. offload-arch uses a two table lookup -/// scheme to determine the offload-arch of supported offload devices. -/// The first table maps pci-id to vendor-specified codenames. Multiple pci-ids -/// can map to a single codename. The 2nd table maps these codenames to the -/// offload-arch needed for compilation using the --offload-arch clang driver -/// options. Multiple codenames can map to a single offload-arch. The -/// offload-arch tool can be used to dump information from these tables. -/// These tables are maintained by vendors and the community as part of LLVM. -/// The tables and source to support querying architecture-specific capabilities -/// are organized in vendor-specific directories such as amdgpu and nvidia, -/// so that offload-arch can be used as a consistent cross-platform tool for -/// managing offloading architectures. offload-arch is both an LLVM tool and -/// an LLVM Library (libLLVMOffloadArch.a). The library is so that runtimes -/// and/or the clang driver have an API to query the current environment -/// without resorting to execv type calls to the offload-arch tool. -/// -//===----------------------------------------------------------------------===// - -#include "llvm/OffloadArch/OffloadArch.h" -#include - -void aot_usage() { - printf("\n\ - offload-arch: Print offload architecture(s) for current system, or\n\ - print offload runtime capabilities of current system,\n\ - or lookup information about offload architectures,\n\ - or print offload requirements for an application binary\n\ -\n\ - Usage:\n\ -\n\ - offload-arch [ Options ] [ Optional lookup-value ]\n\ -\n\ - With no options, offload-arch prints the value for the first visible\n\ - offload-arch in the system. This can be used by various clang\n\ - frontends. For example, to compile for openmp offloading on your current\n\ - system, invoke clang with the following command:\n\ - clang -fopenmp -fopenmp-targets=`offload-arch` foo.c\n\ -\n\ - If an optional lookup-value is specified, offload-arch will\n\ - check if the value is either a valid offload-arch or a codename\n\ - and display associated values with that offload-arch or codename.\n\ - For example, this provides all information for offload-arch gfx906:\n\ -\n\ - offload-arch gfx906 -v \n\ -\n\ - Options:\n\ - -m Print device code name (often found in pci.ids file)\n\ - -n Print numeric pci-id\n\ - -t Print clang offload triple to use for the offload arch.\n\ - -c Print offload capabilities of the current system.\n\ - This option is used by the language runtime to select an image\n\ - when multiple offload images are availble in the binary.\n\ - A capability must exist for each requirement of the selected image.\n\ - each compiled offload image built into an application binary file.\n\ - -a Print values for all devices. Don't stop at first visible device.\n\ - -v Verbose = -a -m -n -t \n\ - For all devices, print codename, numeric value and triple\n\ -\n\ - The options -a and -v will show the offload-arch for all pci-ids that could\n\ - offload, even if they are not visible. Otherwise, the options -m, -n, -t,\n\ - or no option will only show information for the first visible device.\n\ -\n\ - Other Options:\n\ - -hsa Using HSA for device detection instead of PCI IDs.\n\ - -h Print this help message\n\ - -f Print offload requirements including offload-arch for\n\ - each offload image compiled into an application binary file.\n\ -\n\ - There are aliases (symbolic links) 'amdgpu-offload-arch' and 'nvidia-arch'\n\ - to the offload-arch tool. These aliases return 1\n\ - if respectively, no AMD or no Nvidia GPUs are found.\n\ - These aliases are useful to determine if architecture-specific\n\ - offloading tests should be run, or to conditionally load \n\ - archecture-specific software.\n\ -\n\ - Copyright (c) 2021 ADVANCED MICRO DEVICES, INC.\n\ -\n\ -"); - exit(1); -} - -static bool AOT_get_first_capable_device; - -int main(int argc, char **argv) { - bool print_codename = false; - bool print_numeric = false; - bool print_runtime_capabilities = false; - bool amdgpu_arch = false; - bool nvidia_arch = false; - AOT_get_first_capable_device = true; - bool print_triple = false; - bool hsa_detection = false; - - std::string lookup_value; - std::string a, input_filename; - for (int argi = 0; argi < argc; argi++) { - a = std::string(argv[argi]); - if (argi == 0) { - // look for arch-specific invocation with symlink - amdgpu_arch = (a.find("amdgpu-offload-arch") != std::string::npos); - nvidia_arch = (a.find("nvidia-arch") != std::string::npos); - } else { - if (a == "-n") { - print_numeric = true; - } else if (a == "-m") { - print_codename = true; - } else if (a == "-c") { - print_runtime_capabilities = true; - } else if (a == "-h") { - aot_usage(); - } else if (a == "-hsa") { - hsa_detection = true; - } else if (a == "-a") { - AOT_get_first_capable_device = false; // get all devices - } else if (a == "-t") { - print_triple = true; - } else if (a == "-v") { - AOT_get_first_capable_device = false; // get all devices - print_codename = true; - print_numeric = true; - print_triple = true; - } else if (a == "-f") { - argi++; - if (argi == argc) { - fprintf(stderr, "ERROR: Missing filename for -f option\n"); - return 1; - } - input_filename = std::string(argv[argi]); - } else { - lookup_value = a; - } - } - } - - if (!input_filename.empty()) { - std::vector OffloadArchs; - OffloadArchs = getOffloadArchFromBinary(input_filename); - if (OffloadArchs.empty()) - return 1; - for (auto& OffloadArch : OffloadArchs) - printf("%s\n", OffloadArch.c_str()); - return 0; - } - - std::vector> OffloadArchs; - if (lookup_value.empty()) { - // No lookup_value so get the current pci ids. - // First check if invocation was arch specific. - if (amdgpu_arch) - OffloadArchs = getAmdGpuDevices(AMDGPU_SEARCH_PHRASE, AMDGPU_PCIID_PHRASE, - hsa_detection); - else if (nvidia_arch) - OffloadArchs = getPCIIds(NVIDIA_SEARCH_PHRASE, NVIDIA_PCIID_PHRASE); - else - OffloadArchs = getAllPCIIds(hsa_detection); - } else { - if (print_runtime_capabilities) { - fprintf(stderr, "ERROR: cannot lookup offload-arch/codename AND query\n"); - fprintf(stderr, " active runtime capabilities (-c).\n"); - return 1; - } - } - - if (OffloadArchs.empty()) { - fprintf(stderr, "No devices found!\n"); - return 1; - } - - int rc = 0; - bool first_device_printed = false; - for (auto& OffloadArch : OffloadArchs) { - if (AOT_get_first_capable_device && first_device_printed) - break; - - std::string xinfo; - if (print_codename) - xinfo.append(" ").append(getCodename(OffloadArch.first)); - if (print_numeric) - xinfo.append(" ").append(OffloadArch.second); - if (print_triple) - xinfo.append(" ").append(getTriple(OffloadArch.first)); - - std::string caps = getVendorCapabilities(OffloadArch); - std::size_t found_loc = caps.find("NOT-VISIBLE"); - if (found_loc == std::string::npos) { - if (print_runtime_capabilities) { - xinfo.clear(); - xinfo = std::move(caps); - printf("%s\n", xinfo.c_str()); - } else { - printf("%s%s\n", OffloadArch.first.c_str(), xinfo.c_str()); - } - first_device_printed = true; - } - } - - if (!first_device_printed) - rc = 1; - - return rc; -} diff --git a/offload/src/CMakeLists.txt b/offload/src/CMakeLists.txt index 7c84348477a60e..6400c3190024c2 100644 --- a/offload/src/CMakeLists.txt +++ b/offload/src/CMakeLists.txt @@ -64,15 +64,12 @@ if (OPENMP_ENABLE_LIBOMPTARGET_PROFILING) target_link_libraries(omptarget PRIVATE LLVMSupport) endif() -find_library(LLVM_OFFLOAD_ARCH LLVMOffloadArch HINTS ${LLVM_LIBRARY_DIR} ${LLVM_BINARY_DIR} PATH_SUFFIXES lib REQUIRED) - target_include_directories(omptarget PRIVATE ${LIBOMPTARGET_INCLUDE_DIR}) target_link_libraries( omptarget PRIVATE ${CMAKE_DL_LIBS} - ${LLVM_OFFLOAD_ARCH} "-Wl,--no-allow-shlib-undefined") # Define the TARGET_NAME and DEBUG_PREFIX. target_compile_definitions(omptarget PRIVATE