Instructions to use xThr45hx/TensorRT-LLM-Windows-RTX40 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- TensorRT
How to use xThr45hx/TensorRT-LLM-Windows-RTX40 with TensorRT:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
File size: 2,791 Bytes
00db36f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | #ifdef _WIN32
// Windows stubs: transfer agent uses dlopen/cufile which are POSIX-only.
// On Windows, the NIXL/mooncake transfer agent backends are not usable,
// so DynLibLoader is stubbed to return nullptr for any library request.
// The makeTransferAgent template in transferAgent.h will throw via
// TLLM_CHECK_WITH_INFO when its getFunctionPointer<>() call fails, which
// is the desired behavior on Windows.
#include "tensorrt_llm/executor/transferAgent.h"
namespace tensorrt_llm::executor::kv_cache
{
DynLibLoader& DynLibLoader::getInstance()
{
static DynLibLoader instance;
return instance;
}
void* DynLibLoader::getHandle(std::string const& /*name*/)
{
return nullptr;
}
void* DynLibLoader::dlSym(void* /*handle*/, char const* /*symbol*/)
{
return nullptr;
}
DynLibLoader::~DynLibLoader() = default;
} // namespace tensorrt_llm::executor::kv_cache
#else
/*
* SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "tensorrt_llm/executor/transferAgent.h"
#include "tensorrt_llm/common/logger.h"
#ifndef _WIN32
#include <dlfcn.h>
#endif
namespace tensorrt_llm::executor::kv_cache
{
[[nodiscard]] DynLibLoader& DynLibLoader::getInstance()
{
static DynLibLoader instance;
return instance;
}
[[nodiscard]] void* DynLibLoader::getHandle(std::string const& name)
{
std::lock_guard<std::mutex> lock(mDllMutex);
auto it = mHandlers.find(name);
if (it != mHandlers.end())
{
return it->second;
}
TLLM_LOG_INFO("dlopen: " + name);
void* handler = dlopen(name.c_str(), RTLD_LAZY);
TLLM_CHECK_WITH_INFO(handler, "%s can not be loaded correctly: %s", name.c_str(), dlerror());
mHandlers[name] = handler;
return handler;
}
[[nodiscard]] void* DynLibLoader::dlSym(void* handle, char const* symbol)
{
return dlsym(handle, symbol);
}
DynLibLoader::~DynLibLoader()
{
std::lock_guard<std::mutex> lock(mDllMutex);
for (auto const& pair : mHandlers)
{
dlclose(pair.second);
}
}
} // namespace tensorrt_llm::executor::kv_cache
#endif // _WIN32
|