【毫秒源码】【arcar源码】【openpose源码】SP源码全称

时间:2024-12-24 08:23:18 编辑:源码 c 仿 来源:大站协议源码

1.软件sp和cc是源码什么意思
2.Android中dip,dp,sp,pt和px的区别详解
3.[转]Megatron-LM源码系列(八): Context Parallel并行

SP源码全称

软件sp和cc是什么意思

       软件SP是一种软件产品的简写,是源码英文单词“service pack”的缩写。它是源码一组微软公司推出的升级补丁,用于提供操作系统的源码安全性和稳定性。通常情况下,源码软件SP会把多种更新、源码毫秒源码修补、源码补丁和安全修复程序打包成一个升级文件,源码用户可以通过安装该文件来更新其计算机上的源码操作系统。

       软件CC是源码一些软件程序经过编译后生成的可执行文件的后缀名。在编译时,源码源代码会被转化为计算机可识别的源码二进制代码,并将其转换为可执行文件。源码这些可执行文件最终会使用软件CC的源码后缀名来命名。常见的源码软件CC有C++、Java、Python等,arcar源码这些编译器通过转换源代码为机器码,使得程序具有了运行的能力。

       软件SP和CC在计算机软件领域中具有非常广泛的应用。软件SP通过打包多种更新和修复程序,可以快速成批更新操作系统,提高了计算机的安全性和稳定性,减少了计算机遭受黑客攻击和崩溃的几率。而软件CC则是openpose源码编译器生成的可执行文件后缀名,是许多编程语言的标志。程序员们在编写代码时,需要使用到相关软件CC将源代码编译成可执行文件,便于程序的调试和运行。

Android中dip,dp,sp,pt和px的区别详解

       è¿‡åŽ»ï¼Œç¨‹åºå‘˜é€šå¸¸ä»¥åƒç´ ä¸ºå•ä½è®¾è®¡è®¡ç®—机用户界面。例如:图片大小为×像素。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能会小到难以看清内容。由此我们采用与分辨率无关的度量单位来开发程序就能够解决这个问题。Android应用开发支持不同的度量单位。

       åº¦é‡å•ä½å«ä¹‰

       dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。

       dp: dip是一样的

       px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表x像素,这个用的比较多。

       pt: point,是一个标准的长度单位,1pt=1/英寸,用于印刷业,非常简单易用;

       sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

       in(英寸):长度单位。

       mm(毫米):长度单位。

       åº¦é‡å•ä½çš„换算公式

       åœ¨android源码包TypedValue.java中,我们看如下函数:

       ä»£ç å¦‚下:

        public static float applyDimension(int unit, float value,

        DisplayMetrics metrics)

        {

        switch (unit) {

        case COMPLEX_UNIT_PX:

        return value;

        case COMPLEX_UNIT_DIP:

        return value * metrics.density;

        case COMPLEX_UNIT_SP:

        return value * metrics.scaledDensity;

        case COMPLEX_UNIT_PT:

        return value * metrics.xdpi * (1.0f/);

        case COMPLEX_UNIT_IN:

        return value * metrics.xdpi;

        case COMPLEX_UNIT_MM:

        return value * metrics.xdpi * (1.0f/.4f);

        }

        return 0;

        }

        该函数功能:是把各单位换算为像素。

        metrics.density:默认值为DENSITY_DEVICE / (float) DENSITY_DEFAULT;

        metrics.scaledDensity:默认值为DENSITY_DEVICE / (float) DENSITY_DEFAULT;

        metrics.xdpi:默认值为DENSITY_DEVICE;

        DENSITY_DEVICE:为屏幕密度

        DENSITY_DEFAULT:默认值为

       å±å¹•å¯†åº¦ï¼šè¡¨ç¤ºæ¯è‹±å¯¸æœ‰å¤šå°‘个显示点,与分辨率是两个不同的概念。

       æ®px = dip * density / ,则当屏幕密度为时,px = dip

       æ ¹æ® google 的建议,TextView 的字号最好使用 sp 做单位,而且查看TextView的源码可知Android默认使用sp作为字号单位。将dip作为其他元素的单位。

[转]Megatron-LM源码系列(八): Context Parallel并行

       原文链接: Megatron-LM源码系列(八): Context Parallel并行

       Context Parallel并行(CP)与sequence并行(SP)相比,核心差异在于SP只针对Layernorm和Dropout输出的activation在sequence维度进行切分,而CP则进一步扩展,对所有input输入和所有输出activation在sequence维度上进行切分,hbasemerge源码形成更高效的并行处理策略。除了Attention模块外,其他如Layernorm、Dropout等模块在CP并行中无需任何修改,因为它们在处理过程中没有涉及多token间的交互。

       Attention模块之所以特殊,是因为在计算过程中,每个token的maxlength源码查询(query)需要与同一sequence中其他token的键(key)和值(value)进行交互计算,存在内在依赖性。因此,在进行CP并行时,计算开始前需要通过allgather通信手段获取所有token的KV向量,反向计算时则通过reduce_scatter分发gradient梯度。

       为了降低显存使用,前向计算阶段每个GPU仅保存部分KV块,反向阶段则通过allgather通信获取全部KV数据。这些通信操作在特定的rank位置(相同TP组内)进行,底层通过send和recv等操作实现allgather和reduce_scatter。

       以TP2-CP2的transformer网络为例,CP并行的通信操作在Attention之前执行,其他则为TP通信。AG表示allgather,RS表示reduce_scatter,AG/RS表示前向allgather反向reduce_scatter,RS/AG表示前向reduce_scatter反向allgather。

       TP2对应为[GPU0, GPU1], [GPU2, GPU3],CP2指的就是TP组相同位置的rank号,即[GPU0, GPU2], [GPU1, GPU3]。CP并行类似于Ring Attention,但提供了OSS与FlashAttention版本,并去除了冗余的low-triangle causal masking计算。

       LLM常因序列长度过长而导致显存耗尽(OOM)。传统解决方法包括重计算或扩大TP(tensor parallel)大小,但各自存在计算代价增加或线性fc计算时间减少与通信难以掩盖的问题。CP则能更高效地解决这一问题,每个GPU处理一部分序列,同时减少CP倍的通信和计算量,同时保持TP不变,使得activation量也减少CP倍。性能优化结果展示于图表中,用户可通过指定--context-parallel-size在Megatron中实现CP。

       具体源码实现以Megatron-Core 0.5.0版本为例进行说明。

       参考资料:

[链接]

搜索关键词:小商城小程序源码