MCPcopy Create free account
hub / github.com/0xShug0/audio.cpp / build_prefill_attention_mask_values

Function build_prefill_attention_mask_values

src/models/ace_step/planner.cpp:108–128  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

106}
107
108std::vector<ggml_fp16_t> build_prefill_attention_mask_values(const std::vector<int32_t> & attention_mask) {
109 const int64_t tokens = static_cast<int64_t>(attention_mask.size());
110 const ggml_fp16_t neg_inf = ggml_fp32_to_fp16(-std::numeric_limits<float>::infinity());
111 const ggml_fp16_t visible = ggml_fp32_to_fp16(0.0F);
112 std::vector<ggml_fp16_t> values(static_cast<size_t>(tokens * tokens), visible);
113 for (int64_t q = 0; q < tokens; ++q) {
114 if (attention_mask[static_cast<size_t>(q)] == 0) {
115 for (int64_t k = 0; k < tokens; ++k) {
116 values[static_cast<size_t>(q * tokens + k)] = neg_inf;
117 }
118 values[static_cast<size_t>(q * tokens + q)] = visible;
119 continue;
120 }
121 for (int64_t k = 0; k < tokens; ++k) {
122 if (k > q || attention_mask[static_cast<size_t>(k)] == 0) {
123 values[static_cast<size_t>(q * tokens + k)] = neg_inf;
124 }
125 }
126 }
127 return values;
128}
129
130std::vector<ggml_fp16_t> build_cfg_prefill_attention_mask_values(
131 const std::vector<int32_t> & conditional_attention_mask,

Callers 2

runMethod · 0.85

Calls 2

ggml_fp32_to_fp16Function · 0.85
sizeMethod · 0.45

Tested by

no test coverage detected