Download src/execution_plan.cpp from Sariel00/Ling-3.0-tiny-RKNN: direct link, hf CLI and curl.
- Browser
- Download file 1.42 kB
-
https://huggingface.co/Sariel00/Ling-3.0-tiny-RKNN/resolve/main/src/execution_plan.cpp
- Command line
-
hf download hf://Sariel00/Ling-3.0-tiny-RKNN/src/execution_plan.cpp
-
curl -L -o execution_plan.cpp https://huggingface.co/Sariel00/Ling-3.0-tiny-RKNN/resolve/main/src/execution_plan.cpp
1.42 kB
| namespace ling3 { | |
| ExecutionPlan BuildExecutionPlan(std::size_t max_context) { | |
| ExecutionPlan plan; | |
| std::size_t kda_layers = 0; | |
| std::size_t mla_layers = 0; | |
| for (std::size_t layer = 0; layer < plan.layers.size(); ++layer) { | |
| const bool mla = (layer + 1) % 4 == 0; | |
| plan.layers[layer] = { | |
| static_cast<std::uint8_t>(layer), | |
| mla ? AttentionKind::kMla : AttentionKind::kKda, | |
| layer == 0 ? FfnKind::kDense : FfnKind::kMoe, | |
| }; | |
| kda_layers += !mla; | |
| mla_layers += mla; | |
| } | |
| constexpr std::size_t routed_expert_contexts = 128 * 2; | |
| constexpr std::size_t shared_expert_contexts = 2; | |
| constexpr std::size_t kda_projection_contexts = 7; | |
| constexpr std::size_t mla_projection_contexts = 6; | |
| plan.decode_matmul_contexts = | |
| 23 * (routed_expert_contexts + shared_expert_contexts) + | |
| kda_layers * kda_projection_contexts + mla_layers * mla_projection_contexts + 3; | |
| plan.rknn_island_contexts = kda_layers * 3 + 23 * 3 + 24; | |
| plan.kda_state_bytes_fp16 = kda_layers * 16 * 128 * 128 * sizeof(std::uint16_t); | |
| plan.mla_cache_bytes_fp16 = mla_layers * max_context * (512 + 64) * sizeof(std::uint16_t); | |
| plan.activation_arena_bytes = | |
| 2 * 1536 + 3 * (1024 * sizeof(std::int32_t) + 1536 * sizeof(std::int32_t)) + 16 * 128 * 4; | |
| return plan; | |
| } | |
| } // namespace ling3 | |