transformers icon indicating copy to clipboard operation
transformers copied to clipboard

openai's CLIP model not working with pytorch 1.12 in some environments

Open buhrmann opened this issue 3 years ago • 2 comments

System Info

  • transformers version: 4.20.1
  • Platform: Linux-5.4.170+-x86_64-with-glibc2.31
  • Python version: 3.9.12
  • Huggingface_hub version: 0.8.1
  • PyTorch version (GPU?): 1.11.0+cu113 (True)
  • Tensorflow version (GPU?): 2.7.0 (False)
  • Flax version (CPU?/GPU?/TPU?): not installed (NA)
  • Jax version: not installed
  • JaxLib version: not installed
  • Using GPU in script?: yes
  • Using distributed or parallel set-up in script?: no

Who can help?

@patil-suraj

Information

  • [ ] The official example scripts
  • [X] My own modified scripts

Tasks

  • [ ] An officially supported task in the examples folder (such as GLUE/SQuAD, ...)
  • [X] My own task or dataset (give details below)

Reproduction

The following works as expected with torch 1.11, but generates the below error in version 1.12:

import io
import requests

import torch
from PIL import Image
from transformers import CLIPModel, CLIPProcessor


def load_image(bytes, max_width=100, max_height=100, force_rgb=True):
    """Create and optionally resize an image from bytes."""
    img = Image.open(io.BytesIO(bytes))

    width, height = img.size
    if width > max_width or height > max_height:
        img.thumbnail(size=(max_width, max_height))

    if img.mode != "RGB" and force_rgb:
        img = img.convert("RGB")

    return img

urls = [
    "https://placekitten.com/408/287",
    "https://placekitten.com/200/138"
]

images = [load_image(requests.get(url).content) for url in urls]

name = "openai/clip-vit-base-patch32"
proc = CLIPProcessor.from_pretrained(name)
model = CLIPModel.from_pretrained(name)
model.to(torch.device("cuda"))

inputs = proc(images=images, return_tensors="pt").to(torch.device("cuda"))
embeddings = model.get_image_features(**inputs).detach().cpu().numpy()

This results in:

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
Input In [1], in <cell line: 41>()
     38 model.to(torch.device("cuda"))
     40 inputs = proc(images=images, return_tensors="pt").to(torch.device("cuda"))
---> 41 embeddings = model.get_image_features(**inputs).detach().cpu().numpy()

RuntimeError: CUDA error: an illegal memory access was encountered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

Here is how I test the different versions, keep all else the same:

!pip uninstall -y torch torchvision torchaudio
!pip install --no-cache-dir torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
# !pip install --no-cache-dir torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https://download.pytorch.org/whl/cu113

And here some more info about the hardware environment:


┌─────────── System Report ────────────┐
│ Linux                                │
│ Linux-5.4.170+-x86_64-with-glibc2.31 │
│                                      │
│ CPUs                                 │
│ ┌──────────┬────────┐                │
│ │ cores    │      # │                │
│ ├──────────┼────────┤                │
│ │ logical  │      2 │                │
│ │ physical │      1 │                │
│ │ usable   │ [0, 1] │                │
│ └──────────┴────────┘                │
│ RAM                                  │
│ ┌───────────┬──────┐                 │
│ │ kind      │   gb │                 │
│ ├───────────┼──────┤                 │
│ │ total     │  7.3 │                 │
│ │ available │  5.6 │                 │
│ │ used      │  1.5 │                 │
│ │ free      │  3.1 │                 │
│ │ active    │  2.7 │                 │
│ │ inactive  │  1.1 │                 │
│ │ buffers   │  0.4 │                 │
│ │ cached    │  2.4 │                 │
│ │ shared    │  0.0 │                 │
│ │ slab      │  0.3 │                 │
│ └───────────┴──────┘                 │
│ Disk (/home)                         │
│ ┌───────┬──────┐                     │
│ │ kind  │   gb │                     │
│ ├───────┼──────┤                     │
│ │ total │ 48.9 │                     │
│ │ used  │  2.3 │                     │
│ │ free  │ 46.6 │                     │
│ └───────┴──────┘                     │
│ GPU                                  │
│ ┌────────────────┬─────────────────┐ │
│ │ property       │           value │ │
│ ├────────────────┼─────────────────┤ │
│ │ name           │       Tesla K80 │ │
│ │ driver_version │      450.119.04 │ │
│ │ vbios_version  │  80.21.25.00.04 │ │
│ │ memory.total   │       11441 MiB │ │
│ │ memory.free    │       11438 MiB │ │
│ │ memory.used    │           3 MiB │ │
│ └────────────────┴─────────────────┘ │
│ Packages                             │
│ ┌──────────────┬──────────────┐      │
│ │ Package      │      Version │      │
│ ├──────────────┼──────────────┤      │
│ │ numpy        │       1.22.0 │      │
│ │ torch        │ 1.12.0+cu113 │      │
│ │ transformers │       4.20.1 │      │
│ └──────────────┴──────────────┘      │
└──────────────────────────────────────┘

Expected behavior

The code should run without CUDA errors.

buhrmann avatar Jun 30 '22 19:06 buhrmann

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the contributing guidelines are likely to be ignored.

github-actions[bot] avatar Jul 31 '22 15:07 github-actions[bot]

Hey @buhrmann, there are some known issues with torch 1.12. Torch 1.12.1 was released 4 days ago, do you get the same issues with it?

LysandreJik avatar Aug 09 '22 08:08 LysandreJik

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the contributing guidelines are likely to be ignored.

github-actions[bot] avatar Sep 02 '22 15:09 github-actions[bot]