GuyTevet / motion-diffusion-model

The official PyTorch implementation of the paper "Human Motion Diffusion Model"
MIT License
3.12k stars 337 forks source link

RuntimeError: "baddbmm__mkl" not implemented for 'Half' #50

Closed shubhamkapoor01 closed 1 year ago

shubhamkapoor01 commented 1 year ago

I followed the setup instructions using ubuntu 22.04.1 for the humanml_encoder_512 model.

I'm just trying to run the text to motion part and I ran the given example: python -m sample.generate --model_path ./save/humanml_trans_enc_512/model000200000.pt --text_prompt "the person walked forward and is picking up his toolbox."

I get RuntimeError: "baddbmm__mkl" not implemented for 'Half'

Here's the stack trace: ``(mdm) shubhamkapoor@shubhamkapoor-VirtualBox:~/motion-diffusion-model$ python -m sample.generate --model_path ./save/humanml_trans_enc_512/model000200000.pt --text_prompt "the person walked forward and is picking up his toolbox" /home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/torch/cuda/init.py:52: UserWarning: CUDA initialization: Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx (Triggered internally at /opt/conda/conda-bld/pytorch_1607370156314/work/c10/cuda/CUDAFunctions.cpp:100.) return torch._C._cuda_getDeviceCount() > 0 Loading dataset... Reading ././dataset/humanml_opt.txt Loading dataset t2m ... 100%|███████████████████████████████████| 4384/4384 [00:00<00:00, 15494.64it/s] Creating model and diffusion... TRANS_ENC init EMBED TEXT Loading CLIP... Loading checkpoints from [./save/humanml_trans_enc_512/model000200000.pt]...

Sampling [repetitions #0]

0%| | 0/1000 [00:01<?, ?it/s] Traceback (most recent call last): File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/shubhamkapoor/motion-diffusion-model/sample/generate.py", line 256, in main() File "/home/shubhamkapoor/motion-diffusion-model/sample/generate.py", line 124, in main const_noise=False, File "/home/shubhamkapoor/motion-diffusion-model/diffusion/gaussian_diffusion.py", line 654, in p_sample_loop const_noise=const_noise, File "/home/shubhamkapoor/motion-diffusion-model/diffusion/gaussian_diffusion.py", line 727, in p_sample_loop_progressive const_noise=const_noise, File "/home/shubhamkapoor/motion-diffusion-model/diffusion/gaussian_diffusion.py", line 530, in p_sample model_kwargs=model_kwargs, File "/home/shubhamkapoor/motion-diffusion-model/diffusion/respace.py", line 92, in p_mean_variance return super().p_mean_variance(self._wrap_model(model), *args, kwargs) File "/home/shubhamkapoor/motion-diffusion-model/diffusion/gaussian_diffusion.py", line 305, in p_mean_variance model_output = model(x, self._scale_timesteps(t), model_kwargs) File "/home/shubhamkapoor/motion-diffusion-model/diffusion/respace.py", line 129, in call return self.model(x, new_ts, kwargs) File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl result = self.forward(*input, *kwargs) File "/home/shubhamkapoor/motion-diffusion-model/model/cfg_sampler.py", line 29, in forward out = self.model(x, timesteps, y) File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl result = self.forward(input, kwargs) File "/home/shubhamkapoor/motion-diffusion-model/model/mdm.py", line 151, in forward enc_text = self.encode_text(y['text']) File "/home/shubhamkapoor/motion-diffusion-model/model/mdm.py", line 139, in encode_text return self.clip_model.encode_text(texts).float() File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/clip/model.py", line 348, in encode_text x = self.transformer(x) File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl result = self.forward(*input, kwargs) File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/clip/model.py", line 203, in forward return self.resblocks(x) File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl result = self.forward(*input, *kwargs) File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/torch/nn/modules/container.py", line 117, in forward input = module(input) File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl result = self.forward(input, kwargs) File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/clip/model.py", line 190, in forward x = x + self.attention(self.ln_1(x)) File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/clip/model.py", line 187, in attention return self.attn(x, x, x, need_weights=False, attn_mask=self.attn_mask)[0] File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/torch/nn/modules/module.py", line 727, in _call_impl result = self.forward(*input, **kwargs) File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/torch/nn/modules/activation.py", line 985, in forward attn_mask=attn_mask) File "/home/shubhamkapoor/miniconda3/envs/mdm/lib/python3.7/site-packages/torch/nn/functional.py", line 4294, in multi_head_attention_forward attn_output_weights = torch.bmm(q, k.transpose(1, 2)) RuntimeError: "baddbmm__mkl" not implemented for 'Half' (mdm) shubhamkapoor@shubhamkapoor-VirtualBox:~/motion-diffusion-model$``

GuyTevet commented 1 year ago

What torch version do you use? please make sure you use the version specified in our environment.yml file.

shubhamkapoor01 commented 1 year ago

I used the same version of everything as in environment.yml, I think might be because I'm using a ubuntu vm that can't access my nvidia gpu for some reason could that be the problem?

GuyTevet commented 1 year ago

I actually never tested the code on a CPU, it might be it.

Ovion commented 1 year ago

Same problem here. I'm on Ubuntu 22.04 but NOT on a vm. Also use the same version in the .yml

Ovion commented 1 year ago

Already solved, this works for me:

systemctl status nvidia-persistenced Returns failed

sudo systemctl enable nvidia-persistenced Returns failed

  1. I disable secure boot link here systemctl status nvidia-persistenced Returns Nvidia-persistenced-service is masked

  2. Then I do again steps 1 to 3 of the Quick Start Guide (3.1.8.1. Debian Installer) sudo systemctl enable nvidia-persistenced Returns active

KairongChen-l commented 7 months ago

I have the same problem with you,but i can't solve it,could you give me some help?

KairongChen-l commented 7 months ago

1709394452676 how can i solve it;