积分充值
 首页
前端开发
AngularDartElectronFlutterHTML/CSSJavaScriptReactSvelteTypeScriptVue.js构建工具
后端开发
.NetC#C++C语言DenoffmpegGoIdrisJavaJuliaKotlinLeanMakefilenimNode.jsPascalPHPPythonRISC-VRubyRustSwiftUML其它语言区块链开发测试微服务敏捷开发架构设计汇编语言
数据库
Apache DorisApache HBaseCassandraClickHouseFirebirdGreenplumMongoDBMySQLPieCloudDBPostgreSQLRedisSQLSQLiteTiDBVitess数据库中间件数据库工具数据库设计
系统运维
AndroidDevOpshttpdJenkinsLinuxPrometheusTraefikZabbix存储网络与安全
云计算&大数据
Apache APISIXApache FlinkApache KarafApache KyuubiApache OzonedaprDockerHadoopHarborIstioKubernetesOpenShiftPandasrancherRocketMQServerlessService MeshVirtualBoxVMWare云原生CNCF机器学习边缘计算
综合其他
BlenderGIMPKiCadKritaWeblate产品与服务人工智能亿图数据可视化版本控制笔试面试
文库资料
前端
AngularAnt DesignBabelBootstrapChart.jsCSS3EchartsElectronHighchartsHTML/CSSHTML5JavaScriptJerryScriptJestReactSassTypeScriptVue前端工具小程序
后端
.NETApacheC/C++C#CMakeCrystalDartDenoDjangoDubboErlangFastifyFlaskGinGoGoFrameGuzzleIrisJavaJuliaLispLLVMLuaMatplotlibMicronautnimNode.jsPerlPHPPythonQtRPCRubyRustR语言ScalaShellVlangwasmYewZephirZig算法
移动端
AndroidAPP工具FlutterFramework7HarmonyHippyIoniciOSkotlinNativeObject-CPWAReactSwiftuni-appWeex
数据库
ApacheArangoDBCassandraClickHouseCouchDBCrateDBDB2DocumentDBDorisDragonflyDBEdgeDBetcdFirebirdGaussDBGraphGreenPlumHStreamDBHugeGraphimmudbIndexedDBInfluxDBIoTDBKey-ValueKitDBLevelDBM3DBMatrixOneMilvusMongoDBMySQLNavicatNebulaNewSQLNoSQLOceanBaseOpenTSDBOracleOrientDBPostgreSQLPrestoDBQuestDBRedisRocksDBSequoiaDBServerSkytableSQLSQLiteTiDBTiKVTimescaleDBYugabyteDB关系型数据库数据库数据库ORM数据库中间件数据库工具时序数据库
云计算&大数据
ActiveMQAerakiAgentAlluxioAntreaApacheApache APISIXAPISIXBFEBitBookKeeperChaosChoerodonCiliumCloudStackConsulDaprDataEaseDC/OSDockerDrillDruidElasticJobElasticSearchEnvoyErdaFlinkFluentGrafanaHadoopHarborHelmHudiInLongKafkaKnativeKongKubeCubeKubeEdgeKubeflowKubeOperatorKubernetesKubeSphereKubeVelaKumaKylinLibcloudLinkerdLonghornMeiliSearchMeshNacosNATSOKDOpenOpenEBSOpenKruiseOpenPitrixOpenSearchOpenStackOpenTracingOzonePaddlePaddlePolicyPulsarPyTorchRainbondRancherRediSearchScikit-learnServerlessShardingSphereShenYuSparkStormSupersetXuperChainZadig云原生CNCF人工智能区块链数据挖掘机器学习深度学习算法工程边缘计算
UI&美工&设计
BlenderKritaSketchUI设计
网络&系统&运维
AnsibleApacheAWKCeleryCephCI/CDCurveDevOpsGoCDHAProxyIstioJenkinsJumpServerLinuxMacNginxOpenRestyPrometheusServertraefikTrafficUnixWindowsZabbixZipkin安全防护系统内核网络运维监控
综合其它
文章资讯
 上传文档  发布文章  登录账户
IT文库
  • 综合
  • 文档
  • 文章

无数据

分类

全部后端开发(30)C++(19)Rust(10)系统运维(3)DevOps(2)数据库(1)Java(1)MySQL(1)云计算&大数据(1)Kubernetes(1)

语言

全部中文(简体)(33)中文(简体)(2)

格式

全部PPT文档 PPT(35)
 
本次搜索耗时 0.019 秒,为您找到相关结果约 35 个.
  • 全部
  • 后端开发
  • C++
  • Rust
  • 系统运维
  • DevOps
  • 数据库
  • Java
  • MySQL
  • 云计算&大数据
  • Kubernetes
  • 全部
  • 中文(简体)
  • 中文(简体)
  • 全部
  • PPT文档 PPT
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • ppt文档 C++高性能并行编程与优化 - 课件 - 13 C++ STL 容器全解之 vector

    C++ STL 容器全解之 vector by 彭于斌( @archibate ) 往期录播: https://www.bilibili.com/video/BV1fa411r7zp 课程 PPT 和代码: https://github.com/parallel101/course C++ 标准库五大件:容器( container ) C++ 标准库五大件:迭代器( iterator std::out_of_range 让程序提前终止(或者被 try-catch 捕获),配合任意一款调试器,就可 以很快速地定位到出错点。 • 不过 at 需要额外检测下标是否越界,虽然更安 全方便调试,但和 [] 相比有一定性能损失。 • int &at(size_t i); • int const &at(size_t i) const; vector 容器: operator[] ,同时还能享受到 vector 容器 RAII 的安 全性。 • ~vector() noexcept; vector 容器: RAII 避免内存泄露 • 如果用 new/delete 或者 malloc/free 就很容易出现忘记释放内存的情况,造成内存泄露 。 • 而 vector 会在离开作用域时,自动调用解构函数,释放内存,就不必手动释放了,更安 全。 https://github.com
    0 码力 | 90 页 | 4.93 MB | 1 年前
    3
  • ppt文档 Zadig 面向开发者的云原生 DevOps 平台

    面向开发者的云原生 DevOps 平台 角色: 产品 / 架构 开发 测试 运维 运维 / 开发 技术支持 事件 需求设计 架构设计 拆任务、写代码 代码集成 xN 单元测试验证 xN 代码扫描 xN 自测、联调 xN 集成验证 xN 写测试用例 系统验证 xN 自动化测试 xN 性能测试 xN 安全测试 xN 数据变更 xN 测试 | 发布 特点: ● 重复流程自动化 ● 边开发、边验证 ● 服务全生命周期而非只关注代码 ● 每天多次提交提早验证 Zadig 采用「云原生产品级交付」设计理念 数字化产研协同 • 环境 - 统一开发者协作平面 • 工作流 - 统一交付变更通道 • 异构支持 - 统一产研运管理平面 重视开发者体验,工程师不再做脏活累活 传统 DevOps 体系 Zadig 开 源 基 本 能 力 开 源 1.5 个月核心重构 65% 功能实现开源 支撑开源社区开发者环境 易 用 性 增 强 接入:安装 10 分钟以内,成功率达 90% 集成环境:支持开发者 Remote debug 工作流:效率和性能、开发者体验提升 贡献者流程建立 开 放 社 区 搭 建 2021 年 5 月 2021 年 7 月 2021 年 9 月 2021
    0 码力 | 59 页 | 81.43 MB | 1 年前
    3
  • ppt文档 Zadig 产品使用手册

    研发数字化转型方案正成为产业数字化战略的核心环节 Zadig 设计思路:通过「平台工程」解决流程挑战,通过「技术升级」提升组织效能 01 04 02 03 工程化协同:“人、技术、流 程、工具” 四维协同基线,沉 淀全流程数据,从感知到赋 能,服务于工程师 释放云基建能力:链接任何云 及自建资源(容器、主机、车 机、端等),释放云原生价值 和企业创新力 生态开放:广泛开放系统 模块和 OpenAPI 运行效率低,管理维护成本高 方案局限性大,安全性风险高 无法支持敏捷交付模式 支持从需求到发布全流程敏捷交付。尤其面向 多服务并行部署发布,云原生构建环境和运行 环境,基础设施对接及企业级 SSO/ 权限管理 等 运维管理类平台 蓝鲸 Rainbond KubeSphere KubeVela 面向资源管理的运维工具集 面向开发者,需结合 CI/CD 工具额外 搭建全流程能力 专门面向开发者的生产力平台,涵盖需求到开 华为云 DevCloud 阿里云效 腾讯 CODING 云厂商引流为主,锁定风险高 对多云跨地域支持不够 实施负担较重难以推广 面向多云友好,厂商中立,全球多地跨云跨域 安全可靠自动化部署 云原生 CI/CD 工具 Tekton Argo 使用门槛高、学习成本高 需要额外建设全流程能力 接入和使用都极其简单,内置模板库 和最佳实践,基于平台工程打造,可以轻松连 接一切工具链
    0 码力 | 52 页 | 22.95 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串

    十六进制的字母无视大小写,例如 stoi(“7CFE”, nullptr, 16) 的也会得到 31198 。 stoi 的第三参数: base stoi 的 base 参数实战案例 冷知识: stof 支持科学计数法 字符串流 第 5 章 那 to_string 能不能指定十六进制? • 很遗憾, to_string 是个缓解“键盘压力”的帮手函数,功能根本不全。 • 用 + 来拼接字符串也只 里手撸的两个函数(能支持任意 STL 容器的打印) : • https://github.com/zenustech/zeno/blob/master/zeno/include/zeno/utils/to_string.h • https://github.com/zenustech/zeno/blob/master/zeno/include/zeno/utils/format.h cout 支持十六进制 也可以模仿 cin ,用 >> 即可。 • 总结: • << 可以模仿 cout ,取代 to_string 。 • >> 可以模仿 cin ,取代 stoi/stof/stod 。 • 最重要的是他支持各种控制选项(如 hex ), 功能性比 to_string 和 stoi 更强大。 • 要导入他,只需 #include 即可。 字符串常用操作 第 6 章 at
    0 码力 | 162 页 | 40.20 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化

    字节,才能避免 浪费读取的带宽。这样的条件实在有点苛刻,毕 竟小彭老师的电脑还不支持 AVX512 。 • 可以用 _mm_stream_si32 指令代替直接赋值的 写入,他能够绕开缓存,将一个 4 字节的写入操 作,挂起到临时队列,等凑满 64 字节后,直接写 入内存,从而完全避免读的带宽。 • 可惜这货只支持 int 做参数,要用 float 还得转换 一下指针类型, bitcast • 里面有详细说明每个指令对应的汇编,方便理解的伪代码,延迟和花费的时钟周期等。 第 4 章:循环合并法 两个循环体 • 原始的代码第一个循环体执行 a[i] = a[i] * 2 ,等乘法全 部结束了以后,再来一个循环体执行 a[i] = a[i] + 1 。 • 因为第一遍循环过了 1GB 的数据,执行到 a[n-1] 时 ,原本 a[0] 处的缓存早已失效,因此第二遍循环开始 配的开 销。对 func 需要被重复调用的情况很实用。 第 6 章:多维数组 C 语言静态数组 • float a[n]; 可以在栈上分配有 n 个元素的一维数组。 • 通过 a[i] 访问第 i 个元素。 • float a[n][m]; 可以在栈上分配 n 行 m 列的二维数组。 • 通过 a[i][j] 访问第 i 行,第 j 列的元素。 等一下……内存是一维的,为什么可以分配二维的数组?
    0 码力 | 147 页 | 18.88 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程

    英伟达 GTX900 及以上显卡。 • CUDA 11 及以上。 • CMake 3.18 及以上。 我负责监督你学习 第 0 章: Hello, world! CMake 中启用 CUDA 支持 • 最新版的 CMake ( 3.18 以上),只需在 LANGUAGES 后面加上 CUDA 即可启用 。 • 然后在 add_executable 里直接加你 的 .cu 文件,和 图片解释板块和线程 • 如需总的线程数量: blockDim * gridDim • 如需总的线程编号: blockDim * blockIdx + threadIdx 三维的板块和线程编号 • CUDA 也支持三维的板块和线程区间。 • 只要在三重尖括号内指定的参数改成 dim3 类型即可。 dim3 的构造函数就是接受三 个无符号整数( unsigned int )非常简单 。 • dim3(x 函数,就会出错 。 分离 __device__ 函数的声明和定义:解决 • 开启 CMAKE_CUDA_SEPARABLE_COMPILATION 选 项(设为 ON ),即可启用分离声明和定义的支持。 • 不过我还是建议把要相互调用的 __device__ 函数放在 同一个文件,这样方便编译器自动内联优化(第四课讲 过)。 两种开启方式:全局有效 or 仅针对单个程序 只对 main
    0 码力 | 142 页 | 13.52 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 03 现代 C++ 进阶:模板元编程

    T> • 可以声明类型 T 作为模板尖括号里的参数。除了 类型,任意整数也可以作为模板参数: • template • 来声明一个整数 N 作为模板参数。 • 不过模板参数只支持整数类型(包括 enum )。 • 浮点类型、指针类型,不能声明为模板参数。自 定义类型也不可以,比如: • template // 错误! 模板参数:多个模板参数 vector 类型的参数。 • 这里用了 const & 避免不必要的的拷贝。 • 不过,这种部分特化也不支持隐式转换。 为什么要支持整数作为模板参数:因为是编译期常量 • 你可能会想,模板只需要支持 class T 不就行了?反正 int N 可以作为函数的 参数传入,模板还不支持浮点。 • template void func(); • 和 • void func(int ...] = tup; • 利用一个方括号,里面是变量名列表,即 可解包一个 tuple 。里面的数据会按顺序 赋值给每个变量,非常方便。 tuple :结构化绑定为引用 • 结构化绑定也支持绑定为引用: • auto &[x, y, ...] = tup; • 这样相当于解包出来的 x, y, ... 都是 auto & 推 导出来的引用类型。对引用的修改可以影响到原 tuple
    0 码力 | 82 页 | 12.15 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 17 由浅入深学习 map 容器

    first; // K 类型 • (*it).second;// V 类型 map 的遍历:用 C++17 range-based loop • 和 vector 等 STL 容器一样, map 也支持 C++17 的 range-based loop 语法进行遍历 。 • for (auto tmp: m) • 由于刚刚说了, map 真正的“元素类型”是 K-V 对,所以这里的 auto 里面真正 K-V 对的一份深拷贝。你写入的只是这份拷贝 后的 V ,不是 map 中的那个 V 。 map 的遍历:遍历的同时修改怎么办? k v map 中的 堆空间 执行你这段代码 的栈空间 未初 始化 v2 要写入的数 执行中的代码 for (auto [k, v]: m) { v = v2; } • 我们现在遍历一个 map ,然后把他里面所有的 V 都设为 v2 ,要怎么做? 里面真正 K-V 对的一份深拷贝。你写入的只是这份拷贝 后的 V ,不是 map 中的那个 V 。 map 的遍历:遍历的同时修改怎么办? k v map 中的 堆空间 执行你这段代码 的栈空间 k v v2 要写入的数 执行中的代码 for (auto [k, v]: m) { v = v2; } • 我们现在遍历一个 map ,然后把他里面所有的 V 都设为 v2 ,要怎么做?
    0 码力 | 90 页 | 8.76 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 12 从计算机组成原理看 C 语言指针

    刚刚说的让 10000000 表示 -1 , 11111111 表示 -128 的方法就叫做反码表示法。 • 但是这样还有一个问题,那就是硬件电路上,需要完全重新设计,对符号位做一些特殊判 断,才能支持有符号整数的加减法,因此如今的计算机都采用了一种更聪明的表示法: • 他们让 11111111 表示 -1 , 10000000 表示 -128 ,也就是大名鼎鼎的补码表示法。 • 这样做的目的是,利用加法器的“溢出”机制,例如 ,会误以 为输入的是 float 参数。 • 如果你输入的是 3 这样的 int 类型常量, C 语 言不会帮你检测到他和 “ %f” 其实是不匹配的,而 是直接把 int 类型的 4 个字节推到栈上作为 printf 的参数,而 printf 却会把这 4 个字节作为 浮点来处理。由于浮点的指数位处于高位,但整数 是 3 ,导致高位全是 0 ,所以 printf 误读出来的 float ,而不是空指针。从而会去调用 func(int) 的那个重载。 现代 C++ 推荐用 nullptr 表示空指针 • 好在 C++11 引入了 nullptr 关键字,空指 针第一次有了语法级别的支持。 nullptr 的 类型是 std::nullptr_t ,他可以隐式转换为任 意类型的指针。 • 这样总算可以区分 func(int*) 和 func(int) 的重载了。 • 在现代
    0 码力 | 128 页 | 2.95 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化

    shared_ptr, weak_ptr • 存储在栈上(利于优化): • array, bitset, glm::vec, string_view • pair, tuple, optional, variant 存储在栈上无法动态扩充大小,这就是 为什么 vector 这种数据结构要存在堆上 ,而固定长度的 array 可以存在栈上 那么刚才那个例子改成 array 是不是就可 以自动优化成功了?你可以自己试试看, const 一样是 C++ 标准的一部分。 • restrict 是 C99 标准关键字,但不是 C++ 标准的关键字。 • __restrict 其实是编译器的“私货”,好在大多数主流编译器都支持。 • 所以无耻的 C 艹标准委员会什么时候肯把他加入标准呢?看看人家 C 语言。 编译器优化:合并写入 将两个 int32 的写入合 并为一个 int64 的写入 。 合并写入:不能跳跃 但如果访问的两个元素地 因为他不敢保证运行这个程序的电脑支持 AVX 指令集…… 两个 int32 可以合并为一个 int64 四个 int32 可以合并为一个 __m128 八个 int32 可以合并为一个 __m256 让编译器自动检测当前硬件支持的指令集 -march=native 让编译器自动判断当前硬件支 持的指令。老师的电脑支持 AVX 指令集,所 以他用了。不过注意这样编译出的程序,可能 放到别人不支持 AVX 的电脑上没法运行。
    0 码力 | 108 页 | 9.47 MB | 1 年前
    3
共 35 条
  • 1
  • 2
  • 3
  • 4
前往
页
相关搜索词
C++高性性能高性能并行编程优化课件13Zadig面向开发开发者原生DevOps平台产品使用手册使用手册15070803171204
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩