Skip to content

Char datatype assumption #93

@green-br

Description

@green-br

Just building vllm on aarch64 and see the following warning during the build process:

  /vllm/.deps/flashmla-src/csrc/flash_api.cpp: In function ‘std::vector<at::Tensor> get_mla_metadata(at::Tensor&, int, int)’:         
  /vllm/.deps/flashmla-src/csrc/flash_api.cpp:46:38: warning: narrowing conversion of ‘(char)(& seqlens_k)->at::Tensor::<anonymous>.at::TensorBase::get_device()’ from ‘char’ to ‘c10::DeviceIndex’ {aka ‘signed char’} [-Wnarrowing]                                                                                         46 |     at::cuda::CUDAGuard device_guard{(char)seqlens_k.get_device()};                                                                                                              |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                          
/vllm/.deps/flashmla-src/csrc/flash_api.cpp: In function ‘std::vector<at::Tensor> mha_fwd_kvcache_mla(at::Tensor&, const at::Tensor&, int, const at::Tensor&, const at::Tensor&, float, bool, const at::Tensor&, const at::Tensor&)’:                                                                                  
  /vllm/.deps/flashmla-src/csrc/flash_api.cpp:133:38: warning: narrowing conversion of ‘(char)(& q)->at::Tensor::<anonymous>.at::TensorBase::get_device()’ from ‘char’ to ‘c10::DeviceIndex’ {aka ‘signed char’} [-Wnarrowing]                                                                                           
    133 |     at::cuda::CUDAGuard device_guard{(char)q.get_device()};                                                                                                              
        |                                      ^~~~~~~~~~~~~~~~~~~~          

Since on aarch64 char is by default unsigned compared to x86 where it is signed I think we need to be a bit more precise in which char is being used to remove the warning. Would using (signed char) be enough?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions