mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-11-04 09:32:00 +00:00 
			
		
		
		
	vulkan: support fattn sinks (#15126)
This commit is contained in:
		@@ -305,6 +305,27 @@ void main() {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if ((p.mask_n_head_log2 & SINK_ENABLE_BIT) != 0) {
 | 
			
		||||
        [[unroll]] for (uint32_t r = 0; r < Br; ++r) {
 | 
			
		||||
            float sink = perElemOpGetSink(r, 0u, ACC_TYPE(0), iq2);
 | 
			
		||||
 | 
			
		||||
            float ms = 1.0f;
 | 
			
		||||
            float vs = 1.0f;
 | 
			
		||||
 | 
			
		||||
            if (sink > Mf[r]) {
 | 
			
		||||
                ms = exp(Mf[r] - sink);
 | 
			
		||||
 | 
			
		||||
                [[unroll]] for (uint32_t d = 0; d < HSV_per_thread / 4; ++d) {
 | 
			
		||||
                    Of[r][d] *= ms;
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                vs = exp(sink - Mf[r]);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            Lf[r] = Lf[r]*ms + vs;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    float Lfrcp[Br];
 | 
			
		||||
    [[unroll]] for (uint32_t r = 0; r < Br; ++r) {
 | 
			
		||||
        Lfrcp[r] = 1.0 / Lf[r];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user