Windows 用のtriton をビルドして whl パッケージを自分で作成 途中経過
Windows 用のtriton は標準では提供されていないので自分でビルドして whl パッケージを作成してみました
mlir のライブラリの用意
triton
MagicAnimate と同じフォルダーに入れます
GitHub – openai/triton: Development repository for the Triton language and compiler
git はインストールされているものとします
git clone https://github.com/openai/triton.git
cd triton
python.exe -m venv venv
venv\Scripts\activate
(venv) D:\WinPython\content\triton>
Microsoft C++ Build Tools のダウンロード インストール
Microsoft C++ Build Tools – Visual Studio
pip install ninja cmake wheel
今回はうまくいかなかったのでninja を使いません
Releases · ninja-build/ninja (github.com)
“D:\WinPython\content\triton\venv\Scripts\ninja.exe"
cd python
error C3487:’__int64′: すべての return 式は推論結果が同じでなければなりません。以前は 'long’ でした。
error C2664: 'mlir::RankedTensorType mlir::RankedTensorType::get(llvm::ArrayRef,mlir::Type,mlir::Attribute)’: 引数 1 を 'llvm:
:SmallVector’ から 'llvm::ArrayRef’ へ変換できません。
“D:\WinPython\content\triton\lib\Dialect\TritonGPU\Transforms\Pipeliner\MatmulLoopPipeline.cpp"を修正します
// SmallVector<long int> sliceShape;
SmallVector< int64_t> sliceShape;
if (!op)
/// return -1l;
return -1LL;
オーバーロードされた関数ですべての引数の型を変換できませんでした
“D:\WinPython\content\triton\lib\Conversion\TritonToTritonGPU\TritonToTritonGPUPass.cpp"を修正します
auto numElements = product<int64_t>(origShape);
// auto numElements = product<long int>(origShape
“D:\WinPython\content\triton\include\triton\Dialect\Triton\IR\Dialect.h"
#include "mlir/IR/FunctionInterfaces.h"
// #include "mlir/Interfaces/FunctionInt
“D:\WinPython\content\triton\include\triton\Dialect\Triton\IR\TritonInterfaces.td"
“D:\WinPython\content\triton\include\triton\Dialect\Triton\IR\TritonOps.td"
include "mlir/IR/FunctionInterfaces.td" // FunctionOpInterface
//include "mlir/Interfaces/FunctionInterfaces.td" // FunctionOp
D:\WinPython\content\triton\lib\Analysis\Utility.cpp(761,28): error C2672: 'mlir::Operation::walk’: 一致するオーバーロードされた関数が
見つかりませんでした。 [D:\WinPython\content\triton\python\build\cmake.win-amd64-cpython-3.10\lib\Analysis\TritonAnalysis.vcxproj]
D:\WinPython\content\triton\lib\Analysis\Utility.cpp(824,7): error C2672: 'mlir::Operation::walk’: 一致するオーバーロ ードされた関数が見
つかりませんでした。 [D:\WinPython\content\triton\python\build\cmake.win-amd64-cpython-3.10\lib\Analysis\TritonAnalysis.vcxproj]
D:\WinPython\content\triton\lib\Analysis\Utility.cpp(843,11): error C2672: 'mlir::OpState::walk’: 一致するオーバーロードされた関数が見つ
かりませんでした。
pybind11のインストールとビルド
GitHub – pybind/pybind11: Seamless operability between C++11 and Python
“D:\WinPython\content\pybind11-2.11.1″にインストールしました
また"D:\WinPython\content\pybind11-2.11.1\include"配下のファイルを"D:\WinPython\content\triton\third_party\nvidia\pybind11″と"D:\WinPython\content\triton\third_party\amd\pybind11″にコピーします
“D:\WinPython\content\triton\python\setup.py"を修正します
cmake_args = [
"-G", """Visual Studio 17 2022""",
"-DMLIR_DIR=D:\\WinPython\\content\\llvm-project\\build\\lib\\cmake\\mlir",
"-DCMAKE_BUILD_TYPE=Release",
# "-G", "Ninja", # Ninja is much faster than make
# "-DCMAKE_MAKE_PROGRAM=" +
# ninja_dir, # Pass explicit path to ninja otherwise cmake may cache a temporary path
# file = tarfile.open(fileobj=open_url(p.url), mode="r|*")
# file.extractall(path=package_root_dir)
# write version url to package_dir
# with open(os.path.join(package_dir, "version.txt"), "w") as f:
# f.write(p.url)
def add_link_to_backends():
return
for backend in backends:
def download_and_copy(src_path, variable, version, url_func):
return
triton_cache_path = get_triton_cache_path()
# thirdparty_cmake_args = get_thirdparty_packages()
build_args = ["--config", "Release"]
subprocess.check_call(["cmake", "--build", "."] + build_args, cwd=cmake_dir)
Toolkit のダウンロードとインストール
CUDA Toolkit 12.3 Update 2 Downloads | NVIDIA Developer
“C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\bin"のファイルの全てを"D:\WinPython\content\triton\third_party\nvidia\backend"にコピー
D:\WinPython\content\triton\python\triton\backends\amd"フォルダー作成
python setup.py build
python setup.py bdist_wheel
完成しました
“D:\WinPython\content\triton\python\dist\triton-3.0.0-cp310-cp310-win_amd64.whl"
インストールするには
pip install "D:\WinPython\content\triton\python\dist\triton-3.0.0-cp310-cp310-win_amd64.whl"
参考にアンインストール
pip uninstall triton
“D:\WinPython\content\triton\python\dist\triton-3.0.0-cp310-cp310-win_amd64.whl"別なフォルダーに移動して保存しておきます。不要になった"D:\WinPython\content\triton\ “D:\WinPython\settings.triton"フォルダーを削除します
うまくいったと思ったのですがダメでした
色々と修正が必要なようで次のサイトからダウンロードすることをおすすめします
triton-2.1.0-cp310-cp310-win_amd64.whl
triton-2.1.0-cp310-cp310-win_amd64.whl · Kefasu/triton at main (huggingface.co)
triton-3.0.0-cp311-cp311-win_amd64.whl
Release triton windows binaries and python wheels · ACGNnsj/triton-windows-build · GitHub
ディスカッション
コメント一覧
まだ、コメントがありません