InternLM / lmdeploy

LMDeploy is a toolkit for compressing, deploying, and serving LLMs.
https://lmdeploy.readthedocs.io/en/latest/
Apache License 2.0
4.42k stars 398 forks source link

[Bug] illegal memory access was encountered /opt/lmdeploy/src/turbomind/utils/allocator.h:233 #2223

Closed pseudotensor closed 2 months ago

pseudotensor commented 2 months ago

Checklist

Describe the bug

illegal memory access was encountered /opt/lmdeploy/src/turbomind/utils/allocator.h:233

Reproduction

build

cd ~/lmdeploy
# cb2d076ecd50dee59496b45cf2986b8dd065a395 latest main, but same issue with 3 weeks ago version
docker build . -f docker/Dockerfile -t lmdeploy:cu12 --build-arg BASE_IMAGE_VERSION=cu12

Dockerfile.internvl3 file:

FROM lmdeploy:cu12

RUN apt-get update && apt-get install -y python3 python3-pip git

WORKDIR /app

RUN pip3 uninstall pkg_resources -y
RUN pip3 install --upgrade pip
RUN pip3 install --upgrade setuptools==66.1.1
RUN pip3 uninstall -y ninja && pip3 install ninja
RUN CUDA_HOME=/usr/local/cuda-12.4/ PIP_EXTRA_INDEX_URL=https://download.pytorch.org/whl/cu124 pip3 install timm xformers triton==2.3.1 transformers
RUN MAX_JOBS=20 CUDA_HOME=/usr/local/cuda-12.4/ PIP_EXTRA_INDEX_URL=https://download.pytorch.org/whl/cu124 FLASH_ATTENTION_FORCE_BUILD=TRUE pip3 install flash-attn==2.6.3 --no-build-isolation
RUN pip3 install git+https://github.com/haotian-liu/LLaVA.git --no-deps

COPY . .

CMD ["lmdeploy", "serve", "api_server", "OpenGVLab/InternVL2-Llama3-76B"]

build

docker build - < Dockerfile.internvl3 -t internvl3

run

docker stop internvl2_llama3_76b_lmdeploy ; docker remove internvl2_llama3_76b_lmdeploy
source ~/h2ogpt_ops/gr_exports.sh
docker run -d --restart=always --runtime nvidia --gpus '"device=0,1,2,3"' \
    -v $HOME/.cache/huggingface:/root/.cache/huggingface \
    --env "HUGGING_FACE_HUB_TOKEN=$HUGGING_FACE_HUB_TOKEN" \
    -p 23343:23333 \
    --ipc=host \
    --name internvl2_llama3_76b_lmdeploy \
    internvl3 \
    lmdeploy serve api_server OpenGVLab/InternVL2-Llama3-76B \
    --tp 4 \
    --model-name OpenGVLab/InternVL2-Llama3-76B

run script:

from openai import OpenAI

client = OpenAI(base_url='http://149.130.212.179/v1', api_key='EMPTY')

messages1 = [
    {
        'role': 'user',
        'content': [
            {'type': 'text', 'text': "What do you see?"},
            {'type': 'image_url',
             'image_url': {
                'url': 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAJ1AaYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDwOiiirEFFFFABRRRQMKKKKBBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUCloGJRS0YoEJRS0UDEooooABS0UUAGKKKKBAaQUtFABRRRQAGkpaMUAJRS4oxQAlFLiigAxSUtFACUUUUAFFFGPWgAopcUUAX9J1nUtEumudKu5bSdkMbPGcZUkHH5gflRVCikAlFFFMAooooAKKKKACiiigAooooAKKKWgYlFKaQUAFFKaSgQUUuKMUAJRS4ooASilooAKKKKACiiigYUUUUCCiiigAooooAKKKKBhRRRQAUUUUCCiiigYUUUUAFFFFABRRRQIKMUUUAFB60UUAFFFFIAooooAKKKKYBiiiigYUYoooAKKKKACiiigQUUUUDCiiigQUUUUDCiiigQUUUUDCiiigQUUUUDCiiigAooooAKKKKACiiloASilNJQAUUUtACUUGigQUUUUDCiiigQUUUUDCiiigQUUUUAFFFLQMSilpKACiiikAUUUUxBRRRQAUUUUAFFFFAwooooEFFFFABRRS0DEooooAKKKKBBRRS0AJRS0UDEopaKAEopaKQCUUtFACUUtFMAooooASloooAKKKKACiiigAooooAKKKKQhKBS0UxhSUtFACUUtFIAooopgFJS0lIQUUUUDCilopgFFFFIQUUUUxgaSlooASgUtFABRRRQAUUUUAFJS0UCEopaKACiiigYUUUUAFFFFABRRRSAKKKKACiiimAUUUUAFFFFIAooopgFFFFIApzhQxCtuHqRim0UAFFFFABRRRTAKKKKQBRRRQAUUUUAFFFFACUUtFABRRRTAKKKKQBRRRTAKKKKQBRRRTAKKKKQBRRRTAKKKKACiiikIKKKKYwooopAFFFFABRRijFABRRiigAooopgFFFFIAooooAKKMUUwCiiikAUUUUAFFFFABRRRQAUUUUwCiilpAJiilooASiiigAopcUUAJRRilpgJRS0mKACijFLQAmKMUtFIBKKWkxQAUUYpaAExRilopgJiilpKACiiikAUYpaKAExS0UUAFFFFABRRRQAUUUUAFFFFACYpaKKACiiimAUUUUAJQOtLRQAh6UUtJikAUUtFACUYpaKAExRilopgFFFFABRRRQAneilopAJmigiigBaKKKYBRRRQAUUUUAFFFFABRRRSAKKKKACiiimAUUU9Yy6sRj5RmlcBlFFFMAooooAKKKKQBRRS4oASlxRT4oZJn2RqWbGcCmBHRWlc6Pc2ghM720YmjEqZuEPynpkAkjoeKri1i/5/IPyc/yWk9NClFsq0Vca3tB1uZJOM5jh4P4kj+VNuFtBDH5Hn+buO/fjbjAxjHvn9KS1BxsVaKXFJTJCiilxTASilxSUgCiiigAooooAKKKKACiiigAooopgFFFFABRS0UAJRS4oIxQAnWiiikAuKMUUUwDFJS0UAJS4oooAMUlLRQAlLiiikAYoxRRQAUUUUwCrlqLcwSBydx4JzjH4VTq/Y6gba2mgNvBKHzgyDkcHpWdS9tCoW6lFgAxCkkA4BxjNJR6fTpRWgnuFGKKK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',
                }
             },
        ],
    }
]

messages2 = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "What’s in this image?"},
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",
                },
            },
        ],
    }
]

messages3 = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "What’s in this image?"},
            {
                "type": "image_url",
                "image_url": {
                    "url": "https://h2o-release.s3.amazonaws.com/h2ogpt/bigben.jpg",
                },
            },
        ],
    }
]

for messages in [messages1, messages2, messages3]:
    response = client.chat.completions.create(
        model="OpenGVLab/InternVL2-Llama3-76B",
        messages=messages,
        max_tokens=300,
    )

    print(response.choices[0])

gives on server:

HINT:    Please open http://0.0.0.0:23333 in a browser for detailed api usage!!!
HINT:    Please open http://0.0.0.0:23333 in a browser for detailed api usage!!!
HINT:    Please open http://0.0.0.0:23333 in a browser for detailed api usage!!!
INFO:     Started server process [1]                                        
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:23333 (Press CTRL+C to quit)
INFO:     172.16.0.83:13504 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:41960 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:16926 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:30564 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:4206 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:26710 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:21298 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:26726 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:17350 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:36132 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:15454 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:34002 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:9624 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:32604 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:12234 - "GET /health HTTP/1.1" 200 OK
terminate called after throwing an instance of 'std::runtime_error'
  what():  [TM][ERROR] CUDA runtime error: an illegal memory access was encountered /opt/lmdeploy/src/turbomind/utils/allocator.h:233 

terminate called recursively
terminate called recursively
terminate called recursively

happens every time

Environment

8*H100

Error traceback

HINT:    Please open http://0.0.0.0:23333 in a browser for detailed api usage!!!
HINT:    Please open http://0.0.0.0:23333 in a browser for detailed api usage!!!
HINT:    Please open http://0.0.0.0:23333 in a browser for detailed api usage!!!
INFO:     Started server process [1]                                        
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:23333 (Press CTRL+C to quit)
INFO:     172.16.0.83:13504 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:41960 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:16926 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:30564 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:4206 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:26710 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:21298 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:26726 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:17350 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:36132 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:15454 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:34002 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:9624 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:32604 - "GET /health HTTP/1.1" 200 OK
INFO:     172.16.0.83:12234 - "GET /health HTTP/1.1" 200 OK
terminate called after throwing an instance of 'std::runtime_error'
  what():  [TM][ERROR] CUDA runtime error: an illegal memory access was encountered /opt/lmdeploy/src/turbomind/utils/allocator.h:233 

terminate called recursively
terminate called recursively
terminate called recursively
lzhangzz commented 2 months ago

Thanks for reporting the bug.

Please attach the output of lmdeploy check_env and set environment variable TM_DEBUG_LEVEL=DEBUG / TM_LOG_LEVEL=INFO before trying to reproduce it again. This can help us locate the bug.

Except for the InternVL2_llama3-76B model that does not fit into a single GPU, have you tried InternVL2-8B or InternVL2-26B without tensor parallelism on the H100 GPU?

pseudotensor commented 2 months ago

As with the other issue (https://github.com/InternLM/lmdeploy/issues/2164), which may be identical, 1-5 also does same thing after the hash I mentioned. I did not myself bisect where the bug was introduced. That 1-5 uses single GPU on my H100.

lzhangzz commented 2 months ago

We have tried several settings with InternVL-Chat-V1-5 (tp=1,2,4, cuda11/12) on our A100 server but failed to reproduce it (we don't have access to H100 machines at the moment)

It seems that #2082 (263e8cfbced7d8261a1f66223ade9427af795eba) breaks TP on some machine without NVLink. I'm not sure whether it affects your system. I created #2218 to address it but struggle to verify whether it's working since I can't reproduce it myself.

Because CUDA kernel launch is asynchronous, the crash site is usually not where the error actully occurs. It would be very helpful if you can reproduce the bug with environment variables I mentioned before (which will insert sychronization & error check for almost all kernel launches).

lvhan028 commented 2 months ago

@pseudotensor could you help trying the latest v0.5.3?

lvhan028 commented 2 months ago

After checking with other community users, this issue is confirmed to be resolved.