Lines Matching refs:DeviceId
51 uint32_t DeviceId);
60 uint32_t DeviceId) { in hostrpc_assign_buffer() argument
63 DeviceId); in hostrpc_assign_buffer()
220 int32_t DeviceId; member
225 int32_t DeviceId, void *CallStackAddr, const char *Name, in KernelTy()
229 DeviceId(DeviceId), CallStackAddr(CallStackAddr), Name(Name) { in KernelTy()
538 MemcpyFunc Func, int32_t DeviceId) { in freesignalpoolMemcpy() argument
539 hsa_agent_t Agent = HSAAgents[DeviceId]; in freesignalpoolMemcpy()
550 int32_t DeviceId) { in freesignalpoolMemcpyD2H() argument
551 return freesignalpoolMemcpy(Dest, Src, Size, impl_memcpy_d2h, DeviceId); in freesignalpoolMemcpyD2H()
555 int32_t DeviceId) { in freesignalpoolMemcpyH2D() argument
556 return freesignalpoolMemcpy(Dest, Src, Size, impl_memcpy_h2d, DeviceId); in freesignalpoolMemcpyH2D()
559 static void printDeviceInfo(int32_t DeviceId, hsa_agent_t Agent) { in printDeviceInfo() argument
579 printf(" HSA OpenMP Device Number: \t\t%d \n", DeviceId); in printDeviceInfo()
810 void addOffloadEntry(int32_t DeviceId, __tgt_offload_entry Entry) { in addOffloadEntry() argument
811 assert(DeviceId < (int32_t)FuncGblEntries.size() && in addOffloadEntry()
813 FuncOrGblEntryTy &E = FuncGblEntries[DeviceId].back(); in addOffloadEntry()
819 bool findOffloadEntry(int32_t DeviceId, void *Addr) { in findOffloadEntry() argument
820 assert(DeviceId < (int32_t)FuncGblEntries.size() && in findOffloadEntry()
822 FuncOrGblEntryTy &E = FuncGblEntries[DeviceId].back(); in findOffloadEntry()
833 __tgt_target_table *getOffloadEntriesTable(int32_t DeviceId) { in getOffloadEntriesTable() argument
834 assert(DeviceId < (int32_t)FuncGblEntries.size() && in getOffloadEntriesTable()
836 FuncOrGblEntryTy &E = FuncGblEntries[DeviceId].back(); in getOffloadEntriesTable()
855 void clearOffloadEntriesTable(int DeviceId) { in clearOffloadEntriesTable() argument
856 assert(DeviceId < (int32_t)FuncGblEntries.size() && in clearOffloadEntriesTable()
858 FuncGblEntries[DeviceId].emplace_back(); in clearOffloadEntriesTable()
859 FuncOrGblEntryTy &E = FuncGblEntries[DeviceId].back(); in clearOffloadEntriesTable()
866 unsigned int DeviceId) { in addDeviceMemoryPool() argument
867 assert(DeviceId < DeviceFineGrainedMemoryPools.size() && "Error here."); in addDeviceMemoryPool()
877 DeviceFineGrainedMemoryPools[DeviceId] = MemoryPool; in addDeviceMemoryPool()
879 DeviceCoarseGrainedMemoryPools[DeviceId] = MemoryPool; in addDeviceMemoryPool()
886 for (unsigned int DeviceId = 0; DeviceId < Agents.size(); DeviceId++) { in setupDevicePools() local
888 Agents[DeviceId], [&](hsa_amd_memory_pool_t MemoryPool) { in setupDevicePools()
895 return addDeviceMemoryPool(MemoryPool, DeviceId); in setupDevicePools()
950 hsa_amd_memory_pool_t getDeviceMemoryPool(unsigned int DeviceId) { in getDeviceMemoryPool() argument
951 assert(DeviceId >= 0 && DeviceId < DeviceCoarseGrainedMemoryPools.size() && in getDeviceMemoryPool()
953 return DeviceCoarseGrainedMemoryPools[DeviceId]; in getDeviceMemoryPool()
1123 int32_t dataRetrieve(int32_t DeviceId, void *HstPtr, void *TgtPtr, int64_t Size, in dataRetrieve() argument
1126 assert(DeviceId < DeviceInfo().NumberOfDevices && "Device ID too large"); in dataRetrieve()
1136 DeviceId); in dataRetrieve()
1150 int32_t dataSubmit(int32_t DeviceId, void *TgtPtr, void *HstPtr, int64_t Size, in dataSubmit() argument
1154 assert(DeviceId < DeviceInfo().NumberOfDevices && "Device ID too large"); in dataSubmit()
1163 DeviceId); in dataSubmit()
1360 int32_t runRegionLocked(int32_t DeviceId, void *TgtEntryPtr, void **TgtArgs, in runRegionLocked() argument
1384 if (KernelInfoTable[DeviceId].find(KernelName) == in runRegionLocked()
1385 KernelInfoTable[DeviceId].end()) { in runRegionLocked()
1391 KernelInfoTable[DeviceId][KernelName]; in runRegionLocked()
1405 getLaunchVals(DeviceInfo().WarpSize[DeviceId], DeviceInfo().Env, in runRegionLocked()
1410 DeviceInfo().NumTeams[KernelInfo->DeviceId]); in runRegionLocked()
1423 DeviceId, KernelInfo->ExecutionMode, KernelInfo->ConstWGSize, in runRegionLocked()
1431 hsa_queue_t *Queue = DeviceInfo().HSAQueueSchedulers[DeviceId].next(); in runRegionLocked()
1467 DeviceId); in runRegionLocked()
1499 uint64_t Buffer = hostrpc_assign_buffer(DeviceInfo().HSAAgents[DeviceId], in runRegionLocked()
1500 Queue, DeviceId); in runRegionLocked()
1741 void *ModuleBytes, size_t ModuleSize, int DeviceId, C Cb, in moduleRegisterFromMemoryToPlace() argument
1749 DeviceInfo().HSAAgents[DeviceId], L, static_cast<void *>(&Cb), in moduleRegisterFromMemoryToPlace()
1797 DeviceEnvironment(int DeviceId, int NumberDevices, int DynamicMemSize, in DeviceEnvironment()
1802 HostDeviceEnv.DeviceNum = DeviceId; in DeviceEnvironment()
1844 int DeviceId = HostDeviceEnv.DeviceNum; in afterLoading() local
1845 auto &SymbolInfo = DeviceInfo().SymbolInfoTable[DeviceId]; in afterLoading()
1849 SymbolInfo, DeviceId, sym(), &StatePtr, &StatePtrSize); in afterLoading()
1862 StatePtrSize, DeviceId); in afterLoading()
1869 hsa_status_t implCalloc(void **RetPtr, size_t Size, int DeviceId) { in implCalloc() argument
1872 hsa_amd_memory_pool_t MemoryPool = DeviceInfo().getDeviceMemoryPool(DeviceId); in implCalloc()
2038 for (int32_t DeviceId = 0; DeviceId < NumberOfDevices; ++DeviceId) { in __tgt_rtl_is_valid_binary_info() local
2039 __tgt_rtl_init_device(DeviceId); in __tgt_rtl_is_valid_binary_info()
2040 hsa_agent_t agent = DeviceInfo().HSAAgents[DeviceId]; in __tgt_rtl_is_valid_binary_info()
2041 hsa_status_t err = hsa_agent_iterate_isas(agent, GetIsaInfo, &DeviceId); in __tgt_rtl_is_valid_binary_info()
2046 if (!IsImageCompatibleWithEnv(info->Arch, DeviceInfo().TargetID[DeviceId])) in __tgt_rtl_is_valid_binary_info()
2072 int32_t __tgt_rtl_init_device(int DeviceId) { in __tgt_rtl_init_device() argument
2079 DP("Initialize the device id: %d\n", DeviceId); in __tgt_rtl_init_device()
2081 hsa_agent_t Agent = DeviceInfo().HSAAgents[DeviceId]; in __tgt_rtl_init_device()
2089 DeviceInfo().ComputeUnits[DeviceId] = 1; in __tgt_rtl_init_device()
2092 DeviceInfo().ComputeUnits[DeviceId] = ComputeUnits; in __tgt_rtl_init_device()
2093 DP("Using %d compute unis per grid\n", DeviceInfo().ComputeUnits[DeviceId]); in __tgt_rtl_init_device()
2100 DeviceInfo().GPUName[DeviceId] = "--unknown gpu--"; in __tgt_rtl_init_device()
2102 DeviceInfo().GPUName[DeviceId] = GetInfoName; in __tgt_rtl_init_device()
2106 DP("Device#%-2d CU's: %2d %s\n", DeviceId, in __tgt_rtl_init_device()
2107 DeviceInfo().ComputeUnits[DeviceId], DeviceInfo().GPUName[DeviceId].c_str()); in __tgt_rtl_init_device()
2114 DeviceInfo().GroupsPerDevice[DeviceId] = RTLDeviceInfoTy::DefaultNumTeams; in __tgt_rtl_init_device()
2118 DeviceInfo().GroupsPerDevice[DeviceId] = WorkgroupMaxDim[0]; in __tgt_rtl_init_device()
2119 DP("Using %d ROCm blocks per grid\n", DeviceInfo().GroupsPerDevice[DeviceId]); in __tgt_rtl_init_device()
2121 DeviceInfo().GroupsPerDevice[DeviceId] = RTLDeviceInfoTy::HardTeamLimit; in __tgt_rtl_init_device()
2131 DeviceInfo().ThreadsPerGroup[DeviceId] = in __tgt_rtl_init_device()
2133 DeviceInfo().GroupsPerDevice[DeviceId]; in __tgt_rtl_init_device()
2135 if (DeviceInfo().ThreadsPerGroup[DeviceId] == 0) { in __tgt_rtl_init_device()
2136 DeviceInfo().ThreadsPerGroup[DeviceId] = RTLDeviceInfoTy::MaxWgSize; in __tgt_rtl_init_device()
2138 } else if (enforceUpperBound(&DeviceInfo().ThreadsPerGroup[DeviceId], in __tgt_rtl_init_device()
2143 DeviceInfo().ThreadsPerGroup[DeviceId]); in __tgt_rtl_init_device()
2146 DeviceInfo().ThreadsPerGroup[DeviceId] = RTLDeviceInfoTy::MaxWgSize; in __tgt_rtl_init_device()
2157 DeviceInfo().WarpSize[DeviceId] = WavefrontSize; in __tgt_rtl_init_device()
2161 DeviceInfo().WarpSize[DeviceId] = 64; in __tgt_rtl_init_device()
2167 (enforceUpperBound(&DeviceInfo().GroupsPerDevice[DeviceId], in __tgt_rtl_init_device()
2175 DeviceInfo().NumTeams[DeviceId] = DeviceInfo().Env.NumTeams; in __tgt_rtl_init_device()
2185 DeviceInfo().NumTeams[DeviceId] = in __tgt_rtl_init_device()
2186 TeamsPerCU * DeviceInfo().ComputeUnits[DeviceId]; in __tgt_rtl_init_device()
2188 TeamsPerCU, DeviceInfo().ComputeUnits[DeviceId]); in __tgt_rtl_init_device()
2191 if (enforceUpperBound(&DeviceInfo().NumTeams[DeviceId], in __tgt_rtl_init_device()
2192 DeviceInfo().GroupsPerDevice[DeviceId])) { in __tgt_rtl_init_device()
2194 DeviceInfo().GroupsPerDevice[DeviceId]); in __tgt_rtl_init_device()
2199 (enforceUpperBound(&DeviceInfo().NumThreads[DeviceId], in __tgt_rtl_init_device()
2206 DeviceInfo().NumThreads[DeviceId] = RTLDeviceInfoTy::DefaultWgSize; in __tgt_rtl_init_device()
2209 if (enforceUpperBound(&DeviceInfo().NumThreads[DeviceId], in __tgt_rtl_init_device()
2210 DeviceInfo().ThreadsPerGroup[DeviceId])) { in __tgt_rtl_init_device()
2212 DeviceInfo().ThreadsPerGroup[DeviceId]); in __tgt_rtl_init_device()
2216 DeviceId, DeviceInfo().GroupsPerDevice[DeviceId], in __tgt_rtl_init_device()
2217 DeviceInfo().ThreadsPerGroup[DeviceId]); in __tgt_rtl_init_device()
2219 DP("Device %d: wavefront size %d, total threads %d x %d = %d\n", DeviceId, in __tgt_rtl_init_device()
2220 DeviceInfo().WarpSize[DeviceId], DeviceInfo().ThreadsPerGroup[DeviceId], in __tgt_rtl_init_device()
2221 DeviceInfo().GroupsPerDevice[DeviceId], in __tgt_rtl_init_device()
2222 DeviceInfo().GroupsPerDevice[DeviceId] * in __tgt_rtl_init_device()
2223 DeviceInfo().ThreadsPerGroup[DeviceId]); in __tgt_rtl_init_device()
2229 __tgt_rtl_load_binary_locked(int32_t DeviceId, __tgt_device_image *Image);
2231 __tgt_target_table *__tgt_rtl_load_binary(int32_t DeviceId, in __tgt_rtl_load_binary() argument
2234 __tgt_target_table *Res = __tgt_rtl_load_binary_locked(DeviceId, Image); in __tgt_rtl_load_binary()
2239 __tgt_target_table *__tgt_rtl_load_binary_locked(int32_t DeviceId, in __tgt_rtl_load_binary_locked() argument
2265 DeviceInfo().clearOffloadEntriesTable(DeviceId); in __tgt_rtl_load_binary_locked()
2274 auto Env = DeviceEnvironment(DeviceId, DeviceInfo().NumberOfDevices, in __tgt_rtl_load_binary_locked()
2277 auto &KernelInfo = DeviceInfo().KernelInfoTable[DeviceId]; in __tgt_rtl_load_binary_locked()
2278 auto &SymbolInfo = DeviceInfo().SymbolInfoTable[DeviceId]; in __tgt_rtl_load_binary_locked()
2280 KernelInfo, SymbolInfo, (void *)Image->ImageStart, ImgSize, DeviceId, in __tgt_rtl_load_binary_locked()
2292 const char *DeviceName = DeviceInfo().GPUName[DeviceId].c_str(); in __tgt_rtl_load_binary_locked()
2321 auto &SymbolInfoMap = DeviceInfo().SymbolInfoTable[DeviceId]; in __tgt_rtl_load_binary_locked()
2323 SymbolInfoMap, DeviceId, "omptarget_nvptx_device_State", &StatePtr, in __tgt_rtl_load_binary_locked()
2346 auto &DSS = DeviceInfo().DeviceStateStore[DeviceId]; in __tgt_rtl_load_binary_locked()
2350 hsa_status_t Err = implCalloc(&Ptr, DeviceStateBytes, DeviceId); in __tgt_rtl_load_binary_locked()
2369 sizeof(void *), DeviceId); in __tgt_rtl_load_binary_locked()
2405 auto &SymbolInfoMap = DeviceInfo().SymbolInfoTable[DeviceId]; in __tgt_rtl_load_binary_locked()
2407 SymbolInfoMap, DeviceId, E->name, &Varptr, &Varsize); in __tgt_rtl_load_binary_locked()
2425 DeviceInfo().addOffloadEntry(DeviceId, Entry); in __tgt_rtl_load_binary_locked()
2433 DeviceId); in __tgt_rtl_load_binary_locked()
2448 auto &KernelInfoMap = DeviceInfo().KernelInfoTable[DeviceId]; in __tgt_rtl_load_binary_locked()
2593 KernelsList.push_back(KernelTy(ExecModeVal, WGSizeVal, DeviceId, in __tgt_rtl_load_binary_locked()
2598 DeviceInfo().addOffloadEntry(DeviceId, Entry); in __tgt_rtl_load_binary_locked()
2602 return DeviceInfo().getOffloadEntriesTable(DeviceId); in __tgt_rtl_load_binary_locked()
2605 void *__tgt_rtl_data_alloc(int DeviceId, int64_t Size, void *, int32_t Kind) { in __tgt_rtl_data_alloc() argument
2607 assert(DeviceId < DeviceInfo().NumberOfDevices && "Device ID too large"); in __tgt_rtl_data_alloc()
2615 hsa_amd_memory_pool_t MemoryPool = DeviceInfo().getDeviceMemoryPool(DeviceId); in __tgt_rtl_data_alloc()
2623 int32_t __tgt_rtl_data_submit(int DeviceId, void *TgtPtr, void *HstPtr, in __tgt_rtl_data_submit() argument
2625 assert(DeviceId < DeviceInfo().NumberOfDevices && "Device ID too large"); in __tgt_rtl_data_submit()
2627 int32_t Rc = dataSubmit(DeviceId, TgtPtr, HstPtr, Size, &AsyncInfo); in __tgt_rtl_data_submit()
2631 return __tgt_rtl_synchronize(DeviceId, &AsyncInfo); in __tgt_rtl_data_submit()
2634 int32_t __tgt_rtl_data_submit_async(int DeviceId, void *TgtPtr, void *HstPtr, in __tgt_rtl_data_submit_async() argument
2636 assert(DeviceId < DeviceInfo().NumberOfDevices && "Device ID too large"); in __tgt_rtl_data_submit_async()
2639 return dataSubmit(DeviceId, TgtPtr, HstPtr, Size, AsyncInfo); in __tgt_rtl_data_submit_async()
2641 return __tgt_rtl_data_submit(DeviceId, TgtPtr, HstPtr, Size); in __tgt_rtl_data_submit_async()
2644 int32_t __tgt_rtl_data_retrieve(int DeviceId, void *HstPtr, void *TgtPtr, in __tgt_rtl_data_retrieve() argument
2646 assert(DeviceId < DeviceInfo().NumberOfDevices && "Device ID too large"); in __tgt_rtl_data_retrieve()
2648 int32_t Rc = dataRetrieve(DeviceId, HstPtr, TgtPtr, Size, &AsyncInfo); in __tgt_rtl_data_retrieve()
2652 return __tgt_rtl_synchronize(DeviceId, &AsyncInfo); in __tgt_rtl_data_retrieve()
2655 int32_t __tgt_rtl_data_retrieve_async(int DeviceId, void *HstPtr, void *TgtPtr, in __tgt_rtl_data_retrieve_async() argument
2659 assert(DeviceId < DeviceInfo().NumberOfDevices && "Device ID too large"); in __tgt_rtl_data_retrieve_async()
2661 return dataRetrieve(DeviceId, HstPtr, TgtPtr, Size, AsyncInfo); in __tgt_rtl_data_retrieve_async()
2664 int32_t __tgt_rtl_data_delete(int DeviceId, void *TgtPtr) { in __tgt_rtl_data_delete() argument
2665 assert(DeviceId < DeviceInfo().NumberOfDevices && "Device ID too large"); in __tgt_rtl_data_delete()
2676 int32_t __tgt_rtl_run_target_team_region(int32_t DeviceId, void *TgtEntryPtr, in __tgt_rtl_run_target_team_region() argument
2683 int32_t Res = runRegionLocked(DeviceId, TgtEntryPtr, TgtArgs, TgtOffsets, in __tgt_rtl_run_target_team_region()
2690 int32_t __tgt_rtl_run_target_region(int32_t DeviceId, void *TgtEntryPtr, in __tgt_rtl_run_target_region() argument
2697 return __tgt_rtl_run_target_team_region(DeviceId, TgtEntryPtr, TgtArgs, in __tgt_rtl_run_target_region()
2703 int32_t DeviceId, void *TgtEntryPtr, void **TgtArgs, ptrdiff_t *TgtOffsets, in __tgt_rtl_run_target_team_region_async() argument
2710 int32_t Res = runRegionLocked(DeviceId, TgtEntryPtr, TgtArgs, TgtOffsets, in __tgt_rtl_run_target_team_region_async()
2717 int32_t __tgt_rtl_run_target_region_async(int32_t DeviceId, void *TgtEntryPtr, in __tgt_rtl_run_target_region_async() argument
2725 return __tgt_rtl_run_target_team_region_async(DeviceId, TgtEntryPtr, TgtArgs, in __tgt_rtl_run_target_region_async()
2730 int32_t __tgt_rtl_synchronize(int32_t DeviceId, __tgt_async_info *AsyncInfo) { in __tgt_rtl_synchronize() argument
2742 void __tgt_rtl_print_device_info(int32_t DeviceId) { in __tgt_rtl_print_device_info() argument
2746 DeviceInfo().printDeviceInfo(DeviceId, DeviceInfo().HSAAgents[DeviceId]); in __tgt_rtl_print_device_info()