Fixed hipDeviceGetPCIBusId for HIP/HCC

Change-Id: I3688fa2476e1baada2d3c5fc3735cec3f15a1e21
Αυτή η υποβολή περιλαμβάνεται σε:
Rahul Garg
2017-06-28 23:48:27 +05:30
γονέας 6674ef34a8
υποβολή f4ea3b76c8
3 αρχεία άλλαξαν με 6 προσθήκες και 10 διαγραφές
@@ -102,6 +102,7 @@ typedef struct hipDeviceProp_t {
int clockInstructionRate; ///< Frequency in khz of the timer used by the device-side "clock*" instructions. New for HIP.
hipDeviceArch_t arch; ///< Architectural feature flags. New for HIP.
int concurrentKernels; ///< Device can possibly execute multiple kernels concurrently.
int pciDomainID; ///< PCI Domain ID
int pciBusID; ///< PCI Bus ID.
int pciDeviceID; ///< PCI Device ID.
size_t maxSharedMemoryPerMultiProcessor; ///< Maximum Shared Memory Per Multiprocessor.
+4 -9
Προβολή Αρχείου
@@ -376,15 +376,10 @@ hipError_t hipDeviceGetPCIBusId (char *pciBusId,int len, int device)
e = hipErrorInvalidDevice;
} else {
if((pciBusId != nullptr) && (len > 0)) {
int tempPciBusId = 0;
e = ihipDeviceGetAttribute( &tempPciBusId, hipDeviceAttributePciBusId, device);
if( e == hipSuccess) {
std::string tempPciStr = std::to_string(tempPciBusId);
if( len < tempPciStr.length()){
e = hipErrorInvalidValue;
} else {
memcpy( pciBusId , tempPciStr.c_str() , tempPciStr.length() );
}
auto deviceHandle = ihipGetDevice(device);
int retVal = snprintf(pciBusId,len, "%04x:%02x:%02x.0",deviceHandle->_props.pciDomainID,deviceHandle->_props.pciBusID,deviceHandle->_props.pciDeviceID);
if( retVal > 0 && retVal < len) {
e = hipSuccess;
}
}
}
+1 -1
Προβολή Αρχείου
@@ -799,7 +799,7 @@ hipError_t ihipDevice_t::initProperties(hipDeviceProp_t* prop)
DeviceErrorCheck(err);
// BDFID is 16bit uint: [8bit - BusID | 5bit - Device ID | 3bit - Function/DomainID]
// prop->pciDomainID = bdf_id & 0x7;
prop->pciDomainID = bdf_id & 0x7;
prop->pciDeviceID = (bdf_id>>3) & 0x1F;
prop->pciBusID = (bdf_id>>8) & 0xFF;