首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C++11 Unicode支持

    在C++98中,为了支持Unicode字符,使用wchar_t类型来表示“宽字符”,但并没有严格规定位宽,而是让wchar_t的宽度由编译器实现,因此不同的编译器有着不同的实现方式,GNU C++规定wchar_t为32位,Visual C++规定为16位。由于wchar_t宽度没有一个统规定,导致使用wchar_t的代码在不同平台间移植时,可能出现问题。这一状况在C++11中得到了一定的改善,从此Unicode字符的存储有了统一类型: (1)char16_t:用于存储UTF-16编码的Unicode字符。 (2)char32_t:用于存储UTF-32编码的Unicode字符。 至于UTF-8编码的Unicode数据,C++11还是使用了8bits宽度的char类型数组来表示,而char16_t和char32_t的宽度由其名称可以看出,char16_t为16bits,char32_t为32bits。

    03

    【连载】OpenAITriton MLIR 第二章 Batch GEMM benchmark

    通过前两章对于triton的简单介绍,相信大家已经能够通过从源码来安装triton,同时通过triton提供的language前端写出自己想要的一些计算密集型算子。这章开始,我们通过构建一套比较标准的batch gemm的benchmark,来看看目前这些主流的代码生成工具,高性能模板库,与厂商提供的vendor library的差距。因为只有明确了目前的差距,后期关于针对性的优化才能做到点上。这一章,我将使用一个batch的gemm作为例子,来看看triton目前对其的优化能力。选batch gemm的原因是因为目前的LLM中不可避免会有对应的attention操作,而attention操作中,核心的计算密集型算子就是batch的gemm,如果你能够对batch的gemm有一个很好的优化思路,那么在MLSys中大部分的算子优化类的工作对你来说将不会显得那么无从下手。

    01
    领券