I see there in the current CNN related APIs, we have a cudnn_tune argument. However, from the man page, it also says:
There are other options to tune the performance.
cudnn_tune : enable this option leads to higher startup time but may give faster speed. Options are
off : no tuning
limited_workspace :run test and pick the fastest algorithm that doesn’t exceed workspace limit.
fastest : pick the fastest algorithm and ignore workspace limit.
None (default): the behavior is determined by environment variable
MXNET_CUDNN_AUTOTUNE_DEFAULT. 0 for off, 1 for limited workspace (default), 2 for fastest.
Why do we need an argument and an environment variable? What if there values do not match. This usage is very confusing to users.