Skip to content

MIOpen Logger to Driver Decoder for Pooling

Daniel Lowell edited this page Apr 6, 2018 · 2 revisions

Example miopenPoolingForward log:

miopenStatus_t miopenPoolingForward(miopenHandle_t, miopenPoolingDescriptor_t, const void*, miopenTensorDescriptor_t, const void*, const void*, miopenTensorDescriptor_t, void*, bool, void*, size_t){
poolDesc = miopenPoolingMax, 3, 3, 0, 0, 1, 1, 
alpha = 0x7ffdab648c74
xDesc = 100, 3, 32, 32
x = 0x7f904987ebf0
beta = 0x7ffdab648c78
yDesc = 100, 3, 30, 30
y = 0x7f904987edc0
do_backward = 1
workSpace = 0x7f904986d7f0
workSpaceSize = 0
}

The lines of interest are:

  • xDesc = 100, 3, 32, 32 == < n, c, H, W >
  • poolDesc = miopenPoolingMax, 3, 3, 0, 0, 1, 1 == < m, x, y, p, q, u, v >

Example miopenPoolingBackward log:

miopenStatus_t miopenPoolingBackward(miopenHandle_t, miopenPoolingDescriptor_t, const void*, miopenTensorDescriptor_t, const void*, miopenTensorDescriptor_t, const void*, miopenTensorDescriptor_t, const void*, const void*, miopenTensorDescriptor_t, void*, const void*){
poolDesc = miopenPoolingMax, 3, 3, 0, 0, 1, 1, 
alpha = 0x7ffdab648c74
yDesc = 100, 3, 30, 30
y = 0x7f904987edc0
dyDesc = 100, 3, 30, 30
dy = 0x7f904986db70
xDesc = 100, 3, 32, 32
x = 0x7f904987ebf0
beta = 0x7ffdab648c78
dxDesc = 100, 3, 32, 32
dx = 0x7f904986d9c0
workSpace = 0x7f904986d7f0
}

The lines of interest are:

  • xDesc = 100, 3, 32, 32 == < n, c, H, W >
  • poolDesc = miopenPoolingMax, 3, 3, 0, 0, 1, 1 == < m, x, y, p, q, u, v >

Once the values n, c, H, W, m, x, y, p, q, u, v have been extracted from the log as shown above, they can be plugged into the MIOpenDriver pool command line.

To run in 16-bit floating point precision replace pool with poolfp16