message: Make PrintCantFindCudaMessage print subdirectory
  PrintCantFindCudaMessage used in libdevice and ptxas searching prints out
  the CUDA directory but not the subdirectory for the files, which is misleading.
  Change to print subdirectory path.
diff: @@ -129,7 +129,7 @@ static std::vector<std::string> CandidateCudaRoots(
  void PrintCantFindCudaMessage(absl::string_view msg,
  const HloModuleConfig& hlo_module_config) {
  LOG(WARNING) << msg;
  - LOG(WARNING) << "Searched in the following directories:";
  + LOG(WARNING) << "Searched for CUDA in the following directories:";
  for (const auto& dir : CandidateCudaRoots(hlo_module_config)) {
  LOG(WARNING) << " " << dir;
  @@ -152,9 +152,9 @@ string GetLibdeviceDir(const HloModuleConfig& hlo_module_config) {
  }
  }
  PrintCantFindCudaMessage(
  - "Can't find directory containing CUDA libdevice. This may result in "
  - "compilation or runtime failures, if the program we try to run uses "
  - "routines from libdevice.",
  + "Can't find libdevice directory ${CUDA_DIR}/nvvm/libdevice. This may "
  + "result in compilation or runtime failures, if the program we try to run "
  + "uses routines from libdevice.",
  hlo_module_config);
  // GetCudaRotCandidates always inclues ".", but but if everything fails, we
  @@ -697,9 +697,10 @@ std::vector<uint8> NVPTXCompiler::CompilePtxOrGetCachedResult(
  }
  if (log_warning) {
  PrintCantFindCudaMessage(
  - "Can't find ptxas binary. Will back to the GPU driver "
  - "for PTX -> sass compilation. This is OK so long as you don't "
  - "see a warning below about an out-of-date driver version.",
  + "Can't find ptxas binary in ${CUDA_DIR}/bin. Will back to the "
  + "GPU driver for PTX -> sass compilation. This is OK so long "
  + "as you don't see a warning below about an out-of-date driver "
  + "version.",
  hlo_module_config);
  }
  