Function rcudnn_sys::cudaFuncSetSharedMemConfig[][src]

pub unsafe extern "C" fn cudaFuncSetSharedMemConfig(
    func: *const c_void,
    config: cudaSharedMemConfig
) -> cudaError_t
Expand description

\brief Sets the shared memory configuration for a device function

On devices with configurable shared memory banks, this function will force all subsequent launches of the specified device function to have the given shared memory bank size configuration. On any given launch of the function, the shared memory configuration of the device will be temporarily changed if needed to suit the function’s preferred configuration. Changes in shared memory configuration between subsequent launches of functions, may introduce a device side synchronization point.

Any per-function setting of shared memory bank size set via ::cudaFuncSetSharedMemConfig will override the device wide setting set by ::cudaDeviceSetSharedMemConfig.

Changing the shared memory bank size will not increase shared memory usage or affect occupancy of kernels, but may have major effects on performance. Larger bank sizes will allow for greater potential bandwidth to shared memory, but will change what kinds of accesses to shared memory will result in bank conflicts.

This function will do nothing on devices with fixed shared memory bank size.

For templated functions, pass the function symbol as follows: func_name<template_arg_0,…,template_arg_N>

The supported bank configurations are:

  • ::cudaSharedMemBankSizeDefault: use the device’s shared memory configuration when launching this function.
  • ::cudaSharedMemBankSizeFourByte: set shared memory bank width to be four bytes natively when launching this function.
  • ::cudaSharedMemBankSizeEightByte: set shared memory bank width to be eight bytes natively when launching this function.

\param func - Device function symbol \param config - Requested shared memory configuration

\return ::cudaSuccess, ::cudaErrorInvalidDeviceFunction, ::cudaErrorInvalidValue, \notefnerr \note_string_api_deprecation2 \note_init_rt \note_callback

\sa ::cudaDeviceSetSharedMemConfig, ::cudaDeviceGetSharedMemConfig, ::cudaDeviceSetCacheConfig, ::cudaDeviceGetCacheConfig, ::cudaFuncSetCacheConfig, ::cuFuncSetSharedMemConfig