Page cover image

trt-llm build command

The trtllm-build command-line tool is designed to provide a convenient way to build TensorRT engines for large language models using the TensorRT-LLM library.

It encapsulates the necessary configuration options and build process into a single command that can be executed from the command line.

The tool is structured in two main parts

The build.py file: This file contains the actual implementation of the trtllm-build command.

It defines the main function, which serves as the entry point for the command-line tool.

The main function parses the command-line arguments, creates the necessary configurations, and invokes the parallel_build function to build the engines.

The setup.py file: This file is responsible for creating the trtllm-build command during the package installation process.

It includes an entry_points parameter that maps the trtllm-build command to the main function in build.py.

When the TensorRT-LLM package is installed using python setup.py install or pip install, the entry_points are processed, and the trtllm-build command is created and installed in the system's executable path or the virtual environment's bin directory.

To use the trtllm-build command-line tool, you need to have the TensorRT-LLM package installed.

Once installed, you can execute the trtllm-build command from the command line, passing the necessary arguments to configure the build process.

The available arguments include specifying the checkpoint directory, model configuration, build configuration, maximum batch size, maximum input length, and various other options.

For example, you can run the command like this:

trtllm-build --checkpoint_dir /path/to/checkpoint --model_config /path/to/model_config.json --max_batch_size 8 --max_input_len 512 --output_dir /path/to/output

This command will build the TensorRT engines using the specified checkpoint directory, model configuration, maximum batch size of 8, maximum input length of 512, and save the generated engines in the specified output directory.

Building a Front End

Since the trtllm-build command is a command-line tool, you can create a graphical user interface (GUI) or a web-based front-end that allows users to input the necessary configuration options and generates the corresponding command-line arguments.

For example, you can create a simple web form that prompts the user to enter the checkpoint directory, model configuration file, and other relevant options.

When the user submits the form, your front-end can generate the appropriate command-line arguments and execute the trtllm-build command behind the scenes.

Here's a simple example using Python and the Flask web framework:

from flask import Flask, render_template, request
import subprocess

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def build_form():
    if request.method == 'POST':
        checkpoint_dir = request.form['checkpoint_dir']
        model_config = request.form['model_config']
        max_batch_size = request.form['max_batch_size']
        max_input_len = request.form['max_input_len']
        output_dir = request.form['output_dir']

        command = f"trtllm-build --checkpoint_dir {checkpoint_dir} --model_config {model_config} --max_batch_size {max_batch_size} --max_input_len {max_input_len} --output_dir {output_dir}"
        subprocess.run(command, shell=True)

        return "Build completed!"

    return render_template('build_form.html')

if __name__ == '__main__':
    app.run()

In this example, the Flask app renders an HTML form (build_form.html) that allows the user to input the necessary configuration options.

When the form is submitted, the app retrieves the user input, generates the corresponding trtllm-build command, and executes it using the subprocess module.

This is just a simple example to illustrate the concept. You can further enhance the front-end by adding more options, validation, error handling, and a more user-friendly interface.

By creating a front-end, you can provide a more intuitive and user-friendly way for users to interact with the trtllm-build command-line tool, abstracting away the complexities of the command-line arguments.

Last updated

Was this helpful?