上海做网站好的公司有哪些wordpress主题seo模板

张小明 2026/1/17 12:18:06
上海做网站好的公司有哪些,wordpress主题seo模板,网站设计照着做 算侵权吗,网页创意与设计50例训练营简介 2025年昇腾CANN训练营第二季#xff0c;基于CANN开源开放全场景#xff0c;推出0基础入门系列、码力全开特辑、开发者案例等专题课程#xff0c;助力不同阶段开发者快速提升算子开发技能。获得Ascend C算子中级认证#xff0c;即可领取精美证书#xff0c;完成…训练营简介 2025年昇腾CANN训练营第二季基于CANN开源开放全场景推出0基础入门系列、码力全开特辑、开发者案例等专题课程助力不同阶段开发者快速提升算子开发技能。获得Ascend C算子中级认证即可领取精美证书完成社区任务更有机会赢取华为手机平板、开发板等大奖。报名链接https://www.hiascend.com/developer/activities/cann20252#cann-camp-2502-intro前言在通用计算机科学中排序算法如 QuickSort, MergeSort通常依赖复杂的分支跳转Branching。CPU有强大的分支预测器适合处理逻辑判断。NPU (AI Core)是极其强悍的“向量吞吐机器”最讨厌逻辑判断。这就导致了一个悖论AI 模型越来越依赖 TopK如 LLM 的采样、搜索推荐但 AI 芯片却不擅长排序。为了解决这个问题我们需要换一种思维不要让硬件去“判断”该不该交换而是设计一个固定的“交换网络”让数据流过这个网络出来时自然就是有序的。这就是双调排序Bitonic Sort的核心思想。本期文章我们将利用 Ascend C 的 Vector 单元手写一个并行排序算子。一、 核心图解排序网格的魔法双调排序不依赖数据的值来决定控制流它的比较路径是固定的。二、 算法原理从双调序列到有序序列2.1 什么是双调序列 (Bitonic Sequence)一个序列如果是“先单调递增再单调递减”或者通过循环移位能变成这样它就是双调的。 例如[1, 3, 5, 9, 8, 6, 2]。2.2 排序步骤Bitonic Sort 的神奇之处在于构造把任意序列变成多个小的双调序列。合并把两个小的双调序列合并成一个大的双调序列。排序把一个双调序列变成有序序列。对于 Ascend C 开发者我们只需要关注最核心的操作Compare-and-Swap (CAS)。 对于长度为 $N$ 的向量我们需要进行 $\log N$ 个阶段的比较每个阶段包含若干次跨步比较。三、 实战Ascend C 实现 TopK虽然 Ascend C 提供了内置的Sort指令基于硬件加速但它通常有长度限制如 UB 大小或特定元素个数。对于超长序列如 32K 词表的 TopK我们需要分治 归并。3.1 Kernel 类定义假设我们要实现一个行级 TopK从[Batch, N]中选出前 K 个。class KernelTopK { public: __aicore__ inline void Init(GM_ADDR x, GM_ADDR y, uint32_t K, uint32_t N) { // ... Init ... // Tiling: 每次处理一行 this-K K; this-N N; } __aicore__ inline void Process() { for (int i 0; i batchSize; i) { Compute(i); } } };3.2 核心排序逻辑 (Bitonic Merge)假设 N 很大无法一次性 Sort。我们采用分块排序 归并策略。__aicore__ inline void Compute(int32_t i) { // 1. CopyIn // 假设 N4096我们可以一次性搬进 UB (如果 UB 够大) // 如果放不下需要多轮归并类似归并排序 DataCopy(dataLoc, xGm[offset], N); // 2. Local Sort (利用硬件指令) // Ascend C 的 Sort 指令通常支持对较短序列的全排序 // Sort(dst, src, len, repeat) // 假设硬件支持最大 128 长度的 Sort // 我们先把数据切成 32 个 128 的块分别排序 // 伪代码Block Sort // for (int j0; jN/128; j) Sort(dataLoc[j*128], dataLoc[j*128], 128); // 3. Bitonic Merge (手写归并网络) // 现在我们有 32 个有序小块。需要两两合并。 // Merge 两个有序序列 A (升序) 和 B (降序) 成为一个双调序列再排序 // 这里演示最核心的 Compare-and-Swap 步骤 // 假设我们要合并两个长度为 L 的有序块 // 步长 stride 从 L/2 递减到 1 for (uint32_t stride L/2; stride 0; stride / 2) { // 构造比较对data[i] 和 data[istride] // 技巧利用 Vector 指令的地址偏移 // vec1 data[0 ... N-stride] // vec2 data[stride ... N] // maxVec Max(vec1, vec2) // minVec Min(vec1, vec2) // 此时需要根据排序方向将 min/max 写回正确的位置 // 这通常需要 Muls (mask) 或者 Select 指令 // Ascend C 提供了 MrgSort (MergeSort) 高阶指令来加速这一步 // MrgSort(dst, src, mrg_list) } // 4. Extract TopK // 排序完成后取前 K 个即可 DataCopy(yGm[offset], dataLoc, K); }3.3 索引追踪 (ArgMax 问题)TopK 最大的麻烦在于我们不仅要 Value还要 Index。 但在 Vector 排序时Index 会丢失。黑魔法Value-Index Packing我们可以把 Value 和 Index 打包成一个 struct或者更 trick 的做法利用高位存 Value低位存 Index。假设 Value 是 FP16Index 是 Uint16。 我们可以把它们拼成一个Uint32。高 16 位Value (如果不全是正数需要做 Flip 符号位处理保证整数比较逻辑与浮点一致)。低 16 位Index。这样直接对 Uint32 数组进行排序自然就是按 Value 排序且 Index 紧随其后__aicore__ inline void PackAndSort() { // 1. Pack // value_int32 (reinterpret_castuint16(value_fp16) 16) | index_uint16 // 需要用到 Vector 的 Shift 和 Or 指令 // 2. Sort (Uint32) Sort(packedLoc, packedLoc, N); // 3. Unpack // topk_val packed 16 // topk_idx packed 0xFFFF }四、 性能优化的“胜负手”排序算子是Compute Bound的比较次数极多。利用Sort指令尽可能利用硬件内置的排序指令处理小块而不是手写比较网络。利用MrgSort指令硬件加速的归并指令比手动 Compare-Swap 快得多。只排必要的数据如果 $K1$直接ReduceMax。如果 $K$ 很小如 Top5且 $N$ 很大可以先分块求 TopK最后再汇总求 TopKMap-Reduce 思想避免对全量数据排序。五、 总结在 AI Core 上实现排序是对 Ascend C 编程能力的极致考验。算法选择放弃快排拥抱双调Bitonic。数据技巧利用 Packing 技术解决 ArgMax 索引追踪问题。硬件协同混合使用Sort小块和MrgSort合并指令。掌握了 TopK你就打通了 LLM 解码阶段的最后一道关卡让模型生成的每一个 Token 都既快又准。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

哪个公司做外贸网站好奉贤做网站制作

ComfyUI-Impact-Pack完全指南:解锁AI绘画新境界 【免费下载链接】ComfyUI-Impact-Pack 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Impact-Pack ComfyUI-Impact-Pack是专为ComfyUI设计的强大扩展包,为AI绘画爱好者提供了一系列高效的…

张小明 2026/1/14 4:00:22 网站建设

seo 网站排名重庆所有做网站的公司排名

LangFlow中的函数调用支持解析 在构建现代AI应用的过程中,一个反复出现的挑战是如何让大语言模型(LLM)真正“走出文本”,与外部系统产生实际交互。尽管模型能生成流畅的回答,但如果无法查询订单状态、获取实时天气或访…

张小明 2026/1/10 9:23:45 网站建设

用帝国cms做企业网站ui设计师可以做到多少岁

Simulink虚拟同步机仿真模型VSG控制离网运行储能构网型控制 模型直流侧可以替换为储能电池,研究储能离网VSG控制;其他地方也可以改进模型,研究并网VSG,多台VSG并离网,组合控制等,构网型控制现在比较热门。 …

张小明 2026/1/7 20:43:56 网站建设

小网站怎么建设wordpress绿竹主题

文章目录目录引言一、Redis 核心数据结构(底层应用)1.1 基础数据结构1.2 扩展数据结构二、Redis 缓存核心技术(策略问题解决)2.1 缓存过期与淘汰策略2.1.1 过期策略(键的过期处理)2.1.2 内存淘汰策略&#…

张小明 2026/1/7 20:43:59 网站建设

深圳市罗湖区网站建设河间专业做网站电话

虚拟机性能测试的隐形革命:如何让压测效率提升3倍? 【免费下载链接】oha Ohayou(おはよう), HTTP load generator, inspired by rakyll/hey with tui animation. 项目地址: https://gitcode.com/gh_mirrors/oh/oha 为什么你的虚拟机性能测试结果总…

张小明 2026/1/12 23:34:39 网站建设

做外贸都得有网站吗360优化关键词

工具介绍 CustomMemShellInjector,哥斯拉Godzilla定制化插件,接收恶意类Base64编码与恶意类类名进行实例化,达到注入任意类型内存马的目的。 实现功能 输入:Base64编码的 Java Class 字节码(来自 JMG / MemShellParty …

张小明 2026/1/9 23:52:06 网站建设