Ejemplo n.º 1
0
def create_filter_descriptor(arr, format=cudnn.CUDNN_TENSOR_NCHW):
    desc = Descriptor(cudnn.createFilterDescriptor(),
                      cudnn.destroyFilterDescriptor)
    data_type = get_data_type(arr.dtype)
    if arr.ndim == 4:
        cudnn.setFilter4dDescriptor_v4(desc.value, data_type, format,
                                       *arr.shape)
    else:
        c_shape = _to_ctypes_array(arr.shape)
        cudnn.setFilterNdDescriptor_v4(desc.value, data_type, format, arr.ndim,
                                       c_shape.data)
    return desc
Ejemplo n.º 2
0
def create_filter_descriptor(arr, format=cudnn.CUDNN_TENSOR_NCHW):
    desc = Descriptor(cudnn.createFilterDescriptor(),
                      cudnn.destroyFilterDescriptor)
    data_type = get_data_type(arr.dtype)
    if _cudnn_version >= 4000:
        if arr.ndim == 4:
            cudnn.setFilter4dDescriptor_v4(desc.value, data_type, format,
                                           *arr.shape)
        else:
            c_shape = _to_ctypes_array(arr.shape)
            cudnn.setFilterNdDescriptor_v4(desc.value, data_type, format,
                                           arr.ndim, c_shape.data)
    else:
        if arr.ndim == 4:
            cudnn.setFilter4dDescriptor_v3(desc.value, data_type, *arr.shape)
        else:
            c_shape = _to_ctypes_array(arr.shape)
            cudnn.setFilterNdDescriptor_v3(desc.value, data_type, arr.ndim,
                                           c_shape.data)

    return desc