首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

除法和取余的运算时间

上次排队那题,让发现减少取余的次数可以减少很多时间。 然后查到一篇文章 高频率调用的函数一定要保证最优化,慎用除法和余数  原po显示404,所以只有别人转载的。...就是说:除法、取余的指令 CPU周期 可以达到加减法的80倍(周期越多越耗时),因此高频率使用的函数里,以及循环次数很大的循环里,可以通过减少除法次数和取余次数来优化。...然后又看到另一篇文章 取模、乘法和除法运算在CPU和GPU上的效率 意思是好像取模运算并没有想象中的那么慢 对于CPU,最好采用取模运算,整数除法和单精度乘法的效率差不多。...对于GPU(是什么),采用浮点运算最快,其次是取模运算,整数除法最慢。

2.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一场由AI引发的GPU血案,AMD还有机会吗?

    毫无疑问,英伟达GPU是人工智能的标准硬件。同为显卡双雄,AMD在人工智能上却如此默默无为。对于深度学习计算,AMDGPU真就这么不中用吗?它到底做错了什么?...AMD GPU vs 英伟达 GPU 作为投资者,我们想要了解这两家公司对GPU开发(尤其是AI)和市场营销的投入是否均等。他们是否都在进行必要的新产品的研发工作?...是否具备了进一步向研发工作投入资金所需的盈利能力呢?我们归纳出一幅图来回答上述几个问题: 我们发现最后一部分很奇怪。AMD似乎无意展示产品在AI上边的用途。...最终,我们还是发现了下面这张演示图,该图阐述了AMD的显卡是如何应用在“机器学习”(原英文错写为 “MachineLeaning”)领域中的。...读者会很快便能向我们指出其中的错误,如果你想要被认真对待,就不能在重要的地方显示出明显的打字错误。然而没有人发现这个错误,这也就意味着营销团队并没有尽责,并且没多少人看过这个网页。

    1.3K80

    PyTorch在AMD CPU的计算机上卡死了

    GitHub 地址:https://github.com/pytorch/pytorch/issues/52142 有开发者表示:PyTorch 在 AMD CPU 的计算机上,用数据并行单机和多 GPU...感兴趣的开发者可以按照如下配置复现一下这个 bug: 使用带有 AMD cpu 和多个 NVIDIA gpu 的机器; Linux、Python3.8、cuda 11.0、pytorch 1.7.1、...torchvision 0.8.2; 编写代码在 torchvision 中训练 resnet18 模型; 可以尝试测试数据并行 (DP) 和分布式数据并行(DDP),以检查是否都会出现这种情况。...提交 Issue 后,PyTorch 运维团队的成员也留言参与了讨论,在被问到「测试阶段是否包含使用 AMD CPU 的用例」时,该成员表示:「在和其他队友讨论之后,我们意识到测试中没有涉及 AMD CPU...此前有网友发现了 AMD cpu 下 PyTorch 多卡并行卡死的问题,查看日志之后找到错误原因,问题才得以解决。而这次暴露的 bug 目前仍未解决。

    74120

    CUDA优化冷知识24|函数和指令使用的选择和优化

    首先上去的小节,是关于整数除法和求余操作的优化写法。...当除法A / B, 和求余A % B的时候,如果B是2的整数次方,也就是B = 2^N的时候,前者A / B可以直接写成移位操作A >> N;后者A % B, 可以直接写成逻辑与操作A & (N - 1...指令(1):用LEA指令计算p的低32位地址累加i左移3位 指令(2):如果有进位溢出,p高32位+1 我们的GPU是32位机,只能每次进行32位整数运算,对于这p[i * 8]形式的64-bit最终地址计算...而在i是常规有符号的整数的时候,却编译生成3条指令的序列,多了一条: (1)单独计算i * 8的值 (2)整数加法, 并得到是否溢出的标志 (3)根据溢出标志,执行32位符号扩展的LEA.HI.X.SX32...最后这小节还提到了,不仅仅我们浮点数有这种情况,8-bit和16-bit的整数,在直接在我们GPU上使用的时候,通常情况(不考虑深度学习时候的多个打包在一起的运算),都需要转换成32-bit整数,才能进行运算

    1K20

    Python入门

    初学Python一直听别人说,Python是一门解释性语言,直到发现了.pyc文件的存在。如果是解释型语言,那么生成的.pyc文件是什么呢?c应该是compiled的缩写才对啊!...3、Python数据类型 3.1、int(整数) 在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647 在64位系统上,整数的位数为...64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807 3.2、long(长整数) 自从python2.2起,如果整数发生溢出...,python会自动将整数数据转为长整数类型,但是在python3.x版本,不存在long数据类型 ========python 2.7.5=========== [root@python ~]...= 运算符 > 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 (a > b) 不为 true. < 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。

    53910

    新加坡国立大学发布Goat,仅用70亿参数秒杀GPT-4,起步支持16位数乘除法

    数据集 文章中设计的实验为两个正整数的加法和减法,每个正整数最多包含16位数字,并且减法运算的结果可能是负数。...为了限制生成的最大序列长度,乘法的结果为12位以内的正整数;两个正整数除法中,被除数小于12位,商值6位数以内。...Goat-7B可以在24GB VRAM GPU上使用LoRA进行微调,在A100 GPU上仅花费大约1.5小时即可完成10万样本的微调,并实现近乎完美的精度。...最终从GPT-4的解决方案中确定了以下3个常见错误: 1. 对应数字的对齐 2....重复数字 3. n位数乘以1位数的中间结果错误 从实验结果中可以看插到,GPT-4在8D+8D和16D+16D任务上表现相当好,但在大多数16D+8D任务上的计算结果都是错误的,尽管直观上来看,16D+

    26620

    程序员大神Linus转投AMD希望英特尔的AVX 512指令集「去死」

    即使同样是用于进行浮点数学运算(通过 GPU 来做,而不是通过 AVX512 在 CPU 上),或者直接给我更多的核心(有着更多单线程性能,而且没有 AVX512 这样的垃圾),就像 AMD 所做的一样...希望通过常规的整数代码来达到自己能力的极限,而不是通过 AVX512 这样的功率病毒来达到最高频率(因为人们最终还是会拿它来做 memory-to-memory copy),还占据了核心的很大面积。...没错,当然有偏见。非常讨厌浮点数基准测试,而且意识到现在人们都非常关心这个数据。只是认为 AVX512 是一个彻头彻尾的错误。这东西让如鲠在喉。...512bit,每个时钟周期内可打包 32 次双精度或 64 次单精度浮点运算,因此在图像 / 音视频处理、数据分析、科学计算、数据加密和压缩和深度学习等应用场景中,会带来更强大的性能表现,理论上浮点性能翻倍,整数计算则增加约...随着人工智能应用的兴起,新的 AVX512 指令对于加速 AI 模型的推断显得非常有效,但即使是对于 AI 的推断过程来说,使用 GPU 效率还是比 CPU 高的,不过 GPU 的成本也很高。

    1.4K10

    【Java】解决Java报错:ArithmeticException during Division

    检查除数是否为零 2. 使用异常处理 3. 使用浮点数除法 4. 使用自定义方法进行安全除法 三、最佳实践 1. 始终检查除数是否为零 2. 使用异常处理 3. 使用浮点数除法 4....使用浮点数除法 在某些情况下,可以使用浮点数除法来避免整数除零异常。...始终检查除数是否为零 在进行除法运算之前,始终检查除数是否为零,避免除零异常。 2....使用浮点数除法 在适用的情况下,使用浮点数除法来避免整数除零异常,但需注意处理Infinity和NaN的情况。 4....本文详细介绍了其产生原因,并提供了多种解决方案,包括检查除数是否为零、使用异常处理、使用浮点数除法以及编写自定义安全除法方法。

    7010

    CUDA Study Notes

    10.昨CUDA_SAFE_CALL()宏函数 调用后的返回值为cudaerr型,用CUT_CHECK_ERROR()宏函数可以接受最后一次的cudaerr_t异常,如果发生异常将输出错误类型,对调试很有帮助...13.CUDA程序开发难点 到目前为止,觉得最难的地方就是要根据任务以及硬件的特性对任务进行划分,以设计block的工作流程,既要照顾到数据传输的问题同时要隐藏各种访存延迟。...说明:有前缀“_”的函数根据SP(标量流处理器)特点进行了优化,可获得更高的速度,但是有前缀“_”的整数程序只能处理24位整数,有前缀“_”的浮点数精度较不带该前缀的版本精度要差一些。 17....ATI显卡有哪些系列 ATI显示芯片生产商已被AMD收购。生产的芯片系列有: Radeon(镭™):是AMD公司出品的显示芯片的一种系列。俗称A卡。...AMD FirePro:(又称ATI FirePro),是由ATI 开发的显示芯片。由ATI FireGL和ATI FireMV合并而来,现由AMD开发推广。

    81831

    全球首款7nm GPU和CPU同时发布,AMD要逆天!

    11月7日消息,在美国旧金山,AMD召开了名为Next Horizon的大型发布会,会上发布了之前就已经“走漏风声”的全球首款7nm GPU,更让粉丝惊喜的是,一同发布的还有第二代EPYC霄龙,这是全球第一个...AMD的7nm GPU则是很早就出现在大众眼前,在今年6月的Computex 2018上,AMD展出过7nm Radeon Vega GPU,着实让粉丝们激动了一回。...同时,这也是全球第一款支持PCI-E 4.0的显卡,AMD表示,双向带宽64GB/s,此外,借助带宽高达100GB/s的Infinity Fabric系统总线,可支持四路GPU同时运行。...在加速功能上,MI60 FP64双精度浮点最高为7.4TFlops,INT整数最高118Tops,FP32单精度最高14.7TFlops。...抢先一步做出全球第一款7nm CPU和GPUAMD的竞争对手英伟达和英特尔是否感到压力扑面而来了呢?

    40130

    两个最容易被人忽略的基本代码优化技术 博客分类: 经典文章转载 算法Android编程D语言工作

    看过太多的程序员回避使用Profiler,而是把时间花在那些无用的,错误的方向上的“优化”,而被其竞争对手所羞辱。...如果某人问我“inline函数是否被编译器展开了?”或是问我“如果写下i*4,编译器会把其优化为左移位操作 吗?”。这个时候,都会建议他们看看编译器的汇编码。这样的回答是不是很粗暴和无用?...但是,有人看了一下其原来算法以及新算法的汇编,发现了他的改进版本的算法允许其编译器把两个除法操作变 成了一个。这和算法真的没有什么关系。...迅速地看了一下汇编,发现两个编译器编译出来相当的一致,并没有什么明显的东西要对2:1这么大的不同而 负责。但是我们看到有一个对long型整数除法,这个除法调用了运行库。...出乎意料 地,benchmark 和算法代码生成一点关系也没有,完全就是long型整数除法的问题。这暴露了在dmd的运行库中的long型除法的实现很差。修正后就可以提高速度。

    42730

    VS2019自带的增强型指令集和自我优化的版本速度比较.

    去年年底把工程项目由VS的2015升级到2019版本,本以为直接配置下运行环境就可以了,但是一编译发现一大堆错误,所有的错误都指向一系列的指令集,比如_mm_exp_ps、_mm_log_ps、_mm_pow_ps...我们在intel的关于指令集方面的官方网站也发现了一些信息: 比如_mm_exp_ps,其说明如下:   注意其中的Sequence说明这是由一些其他的指令组合而成的。    ...另外,还注意到,在标准的SSE指令集里,没有针对整数除法指令,而在VS2019自带的指令里,已经有了这些函数,当然他们也不是原生的指令,而是多个指令组合的。...我们测试了其中的一个函数_mm_div_epi32,发现这个的速度并不理想,比自己写的要差一个档次,而且他对除零还是直接报错误,所以这个方面的东西还是自己弄比较好,比如我们自定的四个32位整数除法如下代码...mm_setzero_ps())); return _mm_and_ps(_mm_div_ps(a, b), _mm_cmpneq_ps(b, _mm_setzero_ps())); } // 四个32位整数除法

    15810

    全球首款7纳米数据中心CPU问世,AMD赌赢了!

    此前,AMD抢在英伟达之前发布了全球首个7纳米GPU。如今,AMD正用新的7纳米CPU和GPU,瞄准数据中心,发起对英特尔和英伟达更加直接的竞争。...全球首款7纳米数据中心GPU已问世,AMD再次发起与英伟达角力 在GPU方面,AMD计划推出面向数据中心的两款新的GPU:Radeon Instinct MI60和MI50。...这两款GPU还支持PCIe 4.0(是PCIe 3.0的传输速率的两倍),使用AMD Infinity Fabric技术实现GPUGPU的直连,可在多达4个GPU之间提供高达200GB / s的带宽(...新的增强版AMD Vega架构支持FP64低至4-bit的整数运算,带ECC的32GB内存和1TB/s内存带宽。...在2018年底这个时候推出一款性能跟Tesla V100接近的GPU是否明智? 如果AMD的定价与英伟达V100价格相当,那估计他们还有很多事情要做。

    57820

    刚刚,英伟达发布新规:其他硬件禁止使用CUDA!

    而今,英伟达摊牌了、不装了,明确表示,护城河是的,AI计算的果子是的! 某些友商啊,不要耍一些小聪明,在自家的硬件上用的CUDA。...对此,我们首先想到的可能就是像ZLUDA这样的项目,能够让Intel和AMDGPU,无需修改即可运行CUDA应用程序。 对于这样的项目,以及表现出的性能,个人开发者是惊讶的,而英伟达更是震惊的。...从本质上讲,是否使用CUDA取决于任务的需求。对于较轻的工作负载,可以选择不同的方法。...ZLUDA 上文提到的ZLUDA,能够让Intel和AMDGPU,无需修改即可运行CUDA应用程序,并且运行性能接近原生。...但另一位网友回应道,「认为这不适用于这种特殊情况。调查了一下,似乎裁决是针对不能受版权保护的概念,而不是实际的API本身。」

    30310
    领券