mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-11-04 09:32:00 +00:00 
			
		
		
		
	llama : add Qwen2VL support + multimodal RoPE (#10361)
* Barebone Qwen2VL LLM convertor * Add Qwen2VL cli entrypoint * [WIP] add qwen2vl arch * Verify m-rope output * Add vl-rope/2d-rope support for qwen2vl ViT * update qwen2vl cli tool * update 5D tensor op workaround * [WIP] qwen2vl vision model * make batch and clip utils compatible with qwen2vl * [WIP] create inference workflow, gguf convert script but fix * correcting vision-rope behavior, add the missing last layer back to ViT * add arg parser to qwen2vl_surgery * replace variable size array with vector * cuda-gdb cmake preset * add fp32 mrope, vision rope kernel * add fp16 support for qwen2vl and m-rope * add `GGML_ROPE_TYPE_MROPE`, `GGML_ROPE_TYPE_VISION` * fix rope op mode switching, out dated func args * update `llama_hparams` * update to keep up stream changes * resolve linter, test errors * add makefile entry, update speical image padding token * add mrope unit test, fix few compiler warnings * rename `mrope` related function, params * minor updates on debug util, bug fixs * add `m-rope` testcase to `test-backend-ops` * Apply suggestions from code review Co-authored-by: Georgi Gerganov <ggerganov@gmail.com> * fix traililng whitespce * store `llama_hparams.rope_sections` with fixed size array * update position id tensor size check in GGML_OP_ROPE * minor updates * update `ggml_backend_*_supports_op` of unsupported backends * remote old `rope_section` compare operator --------- Co-authored-by: Georgi Gerganov <ggerganov@gmail.com>
This commit is contained in:
		@@ -4488,7 +4488,16 @@ static bool ggml_backend_sycl_device_supports_op(ggml_backend_dev_t dev, const g
 | 
			
		||||
        case GGML_OP_SOFT_MAX:
 | 
			
		||||
            return true;
 | 
			
		||||
        case GGML_OP_ROPE:
 | 
			
		||||
            return ggml_is_contiguous(op->src[0]);
 | 
			
		||||
            {
 | 
			
		||||
                const int mode = ((const int32_t *) op->op_params)[2];
 | 
			
		||||
                if (mode & GGML_ROPE_TYPE_MROPE) {
 | 
			
		||||
                    return false;
 | 
			
		||||
                }
 | 
			
		||||
                if (mode & GGML_ROPE_TYPE_VISION) {
 | 
			
		||||
                    return false;
 | 
			
		||||
                }
 | 
			
		||||
                return ggml_is_contiguous(op->src[0]);
 | 
			
		||||
            }
 | 
			
		||||
        case GGML_OP_IM2COL:
 | 
			
		||||
            // TODO: add support for the new F32 operations
 | 
			
		||||
            return op->src[0]->type == GGML_TYPE_F16;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user