积分充值
 首页
前端开发
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文库
  • 综合
  • 文档
  • 文章

无数据

分类

全部后端开发(21)C++(21)

语言

全部中文(简体)(19)英语(1)中文(繁体)(1)

格式

全部PDF文档 PDF(12)PPT文档 PPT(9)
 
本次搜索耗时 0.062 秒,为您找到相关结果约 21 个.
  • 全部
  • 后端开发
  • C++
  • 全部
  • 中文(简体)
  • 英语
  • 中文(繁体)
  • 全部
  • PDF文档 PDF
  • PPT文档 PPT
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • ppt文档 C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化

    可惜这货只支持 int 做参数,要用 float 还得转换 一下指针类型, bitcast 一下参数。 stream 的特点:不会读到缓存里 • 因为 _mm_stream_si32 会绕开缓存,直 接把数据写到内存,之后读取的话,反而 需要等待 stream 写回执行完成,然后重 新读取到缓存,反而更低效。 • 因此,仅当这些情况: 1. 该数组只有写入,之前完全没有读取过 。 2 也不会越界。 ndarray :解决访问越界问题 • 我们采用了“索性分配更大数组”的办法。 • 因此我们现在给 ndarray 的模板加了一个 额外参数,用来控制边界层的大小。 • 这里我们的图像模糊操作需要向外扩张访 问 8 个元素,因此需要把 a 的边界层大小 声明为 8 ,即 ndarray<2, float, 8> 。 ndarray :解决起始地址对齐问题 有些 SIMD 指令要求地址对齐到一定字节数,否则会 structured grid )表示,那就是一个插桩操作。 • 插桩的内核( kernel )指的就是这个“周围范围”的形状(如右图三个例子) 和每个地方读取到值对修改自身值的权重等信息。 • 个人认为,图像处理中的模糊操作,或者是滤波操作,就属于插桩。有的 插桩内核各轴向是对称的(比如高斯模糊),有的是单单往一个方向延伸 很长(比如径向模糊),有的内核是正方形(箱滤波)。 • 人工智障圈子里好像管这个叫卷积(
    0 码力 | 147 页 | 18.88 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 06 TBB 开启的并行编程之旅

    是性能毕竟不是线性增长。 • 为什么无法做到呢?首先,为了保证缓存一致性以及其他握手协议需要运行时间开销。在 今天,双核或者四核机器在多线程应用方面,其性能不见得的是单核机器的两倍或者四倍。 这一问题一直伴随 CPU 发展至今。 并发和并行的区别 • 运用多线程的方式和动机,一般分为两种。 • 并发:单核处理器,操作系统通过时间片调 度算法,轮换着执行着不同的线程,看起来 就好像是同时运行一样,其实每一时刻只有 器的电脑,他正在渲染 cornell box 的图像, 这个图像在单核上渲染需要 4 分钟。 • 他把图像切成 4 份,每个是原来的 1/4 大小 ,这样每个小块渲染只需要 1 分钟。 • 然后他把 4 个小块发给 4 个处理器核心, 1 分钟后 4 个处理器都渲染完毕得到结果。 • 最后只需将 4 个小块拼接起来即可得到完整 的 cornell box 图像。总共只花了 1 分钟。 图形学爱 1 2 3 4 1 分 15 秒 1 分 30 秒 0 分 45 秒 0 分 30 秒 解决 1 :线程数量超过 CPU 核心数量,让系统调度保证各个核心始终饱和 • 因此,最好不是按照图像大小均匀等分,而是按照工 作量大小均匀等分。然而工作量大小我们没办法提前 知道……怎么办? • 最简单的办法:只需要让线程数量超过 CPU 核心数量 ,这时操作系统会自动启用时间片轮换调度,轮流执
    0 码力 | 116 页 | 15.85 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程

    dim3(n, 1, 1)>>> 的简写而已。 图片解释三维的板块和线程 • 之所以会把 blockDim 和 gridDim 分三维主要是因为 GPU 的业务常常涉及到三维图形学和二维图像,觉得 这样很方便,并不一定 GPU 硬件上是三维这样排列 的。 • 三维情况下同样可以获取总的线程编号(扁平化)。 • 如需总的线程数量: blockDim * gridDim • 如需总的线程编号: SM 之间调度你提交的 各个板块。正如操作系统在多个 CPU 核心之间调度线程那样…… • 不过有一点不同, GPU 不会像 CPU 那样做时间片轮换——板块一旦被调度到了一个 SM 上,就会一直执行,直到他执行完退出,这样的好处是不存在保存和切换上下文(寄 存器,共享内存等)的开销,毕竟 GPU 的数据量比较大,禁不起这样切换来切换去…… • 一个 SM 可同时运行多个板块,这时多个板块共用同一块共享内存(每块分到的就少了) 效,可以把数组故意搞成不对齐的 33 跨步来避免。 • 顺便一提,英伟达的 warp 大小是 32 ,而 AMD 的显卡则是 64 ,其他概念如共享内存基本类似 。 第 10 章:插桩操作实战 读写图像 • 首先是读写图像的函数,利用了 stb_image 这个单头文件库。 X 方向模糊 • 然后看实现径向模糊的核函数。 Y 方向模糊 • Y 方向同理。 经典案例: jacobi 迭代 • 相比第七课
    0 码力 | 142 页 | 13.52 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 12 从计算机组成原理看 C 语言指针

    这里我们是在 func 内部调用了 malloc ,当然我们需要告诉调用者去 free 我们返回的指 针。 • size_t* n 用于额外返回数组的大小,如果不需要也可以不加。 • 例子:读取图像像素值作为数组的 stbi_load 函数(稍后要 stbi_free 释放他返回的指 针)。 函数需要输入或输出数组?分类讨论 • 第三种情况有一个更好的解决方案,那就是分成两个函数: • 问到被其他变量覆盖的数据。 解决:使用 malloc 或者 new 在堆上分配数组 • 可以改用 malloc 或者 new 在堆上分配 内存,堆上内存是持久的,只要你不手动 free 他就一直在那里。 • 这样函数退出时不会释放数组,调用者就 可以访问到正确的数据了。 • 当然这样需要调用者在退出时手动调用一 下 free(a) ,因为堆内存不会自动释放。 太复杂了?没关系,用 C++
    0 码力 | 128 页 | 2.95 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.0.0b4 C++版

    了本书内容的准确性与品质。在此感谢所有老师和前辈们的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上深受《动手学深度学习》的启发。在此向各位读者强烈推荐这本 优秀著作。 衷心感谢我的父母,正是你们一直以来的支持与鼓励,让我有机会做这件富有趣味的事。 0.2. 如何使用本书 � 为了获得最佳的阅读体验,建议您通读本节内容。 0. 前言 hello‑algo.com 3 0.2.1. 行文风格约定 度,因此更易于理解。在本书中,重点和难点知识 将主要通过动画和图解形式展示,而文字则作为动画和图片的解释与补充。 在阅读本书时,如果发现某段内容提供了动画或图解,建议以图为主线,以文字(通常位于图像上方)为辅, 综合两者来理解内容。 Figure 0‑2. 动画图解示例 0. 前言 hello‑algo.com 4 0.2.3. 在代码实践中加深理解 本书的配套代码托管在GitHub 查找插入位置:与查找操作相似,从根节点出发,根据当前节点值和 num 的大小关系循环向下搜索,直 到越过叶节点(遍历至 None )时跳出循环。 2. 在该位置插入节点:初始化节点 num ,将该节点置于 None 的位置。 二叉搜索树不允许存在重复节点,否则将违反其定义。因此,若待插入节点在树中已存在,则不执行插入,直 接返回。 Figure 7‑18. 在二叉搜索树中插入节点 // === File:
    0 码力 | 343 页 | 27.39 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.2.0 繁体中文 C++ 版

    保了本書內容的準確性與品質。在此感謝所有老師和前輩的傑出貢獻! 本書倡導手腦並用的學習方式,在這一點上我深受《動手學深度學習》的啟發。在此向各位讀者強烈推薦這 本優秀的著作。 衷心感謝我的父母,正是你們一直以來的支持與鼓勵,讓我有機會做這件富有趣味的事。 0.2 如何使用本書 Tip 為了獲得最佳的閱讀體驗,建議你通讀本節內容。 0.2.1 行文風格約定 ‧ 標題後標註 * 的是選讀章節,內容 木代表資料,積木的形狀和連線方式等代表資料結 構,拼裝積木的步驟則對應演算法。 1. Q & A Q:作為一名程式設計師,我在日常工作中從未用演算法解決過問題,常用演算法都被程式語言封裝好了,直 接用就可以了;這是否意味著我們工作中的問題還沒有到達需要演算法的程度? 如果把具體的工作技能比作是武功的“招式”的話,那麼基礎科目應該更像是“內功”。 我認為學演算法(以及其他基礎科目)的意義 圖 2‑4 遞迴呼叫深度 在實際中,程式語言允許的遞迴深度通常是有限的,過深的遞迴可能導致堆疊溢位錯誤。 2. 尾遞迴 有趣的是,如果函式在返回前的最後一步才進行遞迴呼叫,則該函式可以被編譯器或直譯器最佳化,使其在 空間效率上與迭代相當。這種情況被稱為尾遞迴(tail recursion)。 ‧ 普通遞迴:當函式返回到上一層級的函式後,需要繼續執行程式碼,因此系統需要儲存上一層呼叫的上 下文。
    0 码力 | 379 页 | 18.79 MB | 10 月前
    3
  • pdf文档 《深入浅出MFC》2/e

    translated it. shiowli@ms13.hinet.net 1997/11 月我看见了深入浅出MFC。仔细研读后我知道这是我在MFC 及Windows 程序 设计领域中的大卫之星。您的书一直都是我的良师,不但奠定了我的根基,也使我对Windows 程序设计兴趣大增。国内外介绍MFC 程序设计的书很多,但看过范例后仍有一种被当成 puppet 的感觉。感谢侯先生毫不保留地攻坚MFC,使我得到了豁然开朗的喜悦。 多采用Motorola 的processor。所以,我对Intel 8086, 8051 系列及Motorola 68000 系列的assembly 语言比较熟悉,而对framework 这样的软件 制造思想和手段一直并不熟悉。近来偶有机会加入一个project,要生成在Win95 下运行的 代码,因此,想尝试一下使用framework 构造软件。很幸运,我找到了您的书。讲VC++ MFC 的书很多,但能像您这 封mail 的动机。我想好的作家需要我们的鼓 励,当然也希望能从你处获得更多的新知。谢谢。 大陆"BaiLu" 侯先生:您好!以前我一直是用DELPHI 和PB 主要做调制解调器的,近日在看您编写的《深 入浅出WINDOWS MFC 程序设计》(编按:深入浅出MFC 简体版),收益非浅,很佩 服您的写作水平,讲得非常好。在大陆还是很少有您这般水准写C++
    0 码力 | 1009 页 | 11.08 MB | 1 年前
    3
  • pdf文档 现代C++ 教程:高速上手C++11/14/17/20

    writeable } for (auto element : vec) std::cout << element << std::endl; // read only } 2.5 模板 C++ 的模板一直是这门语言的一种特殊的艺术,模板甚至可以独立作为一门新的语言来进行使用。 模板的哲学在于将一切能够在编译期处理的问题丢到编译期进行处理,仅在运行时处理那些最核心的动 态服务,进而大幅优化运行期的性能。因此模板也被很多人视作 TrueDarkMagic = MagicType, std::string>; int main() { TrueDarkMagic you; } 变长参数模板 模板一直是 C++ 所独有的黑魔法(一起念:Dark Magic)之一。在 C++11 之前,无论是类模板 还是函数模板,都只能按其指定的样子,接受一组固定数量的模板参数;而 C++11 加入了新的表示方 temp 在内部创建然后被赋值给 v,然而 v 获得这个对象时,会将整个 temp 拷贝一份,然后把 temp 销毁,如果这个 temp 非常大,这将造成大量 额外的开销(这也就是传统 C++ 一直被诟病的问题)。在最后一行中,v 是左值、foo() 返回的值就是 右值(也是纯右值)。但是,v 可以被别的变量捕获到,而 foo() 产生的那个返回值作为一个临时值,一 旦被 v 复制后,将立即
    0 码力 | 83 页 | 2.42 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起

    标准库的功能,难免会用到一些第三方库。 • 最友好的一类库莫过于纯头文件库了,这里是一些好用的 header-only 库: 1. nothings/stb - 大名鼎鼎的 stb_image 系列,涵盖图像,声音,字体等,只需单头文件! 2. Neargye/magic_enum - 枚举类型的反射,如枚举转字符串等(实现方式很巧妙) 3. g-truc/glm - 模仿 GLSL 语法的数学矢量
    0 码力 | 32 页 | 11.40 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 性能优化之无分支编程 Branchless Programming

    分钟 全身 无条件跳转指令 • 还有一个小问题,就是执行正常的分支走到“拉 粑粑”后,还会去医院。 • 为了在正常分支里不去医院,我们在“拉粑粑”后 面加一条无条件跳转指令,不论条件如何,直 接跳转到去医院的下一条指令,也就是程序结 束。 • if (! 烫伤 ) { • 刷牙 ; 看比站 ; 吃饭 ; 拉粑粑 ; • } else { • 去医院 ; • } 任务 如果预判失败,最后走了分支 B ,那就不得不把预先执行分支 A 的数据全部删了,浪费 90% 的算力。这就是 CPU 的分支预测,根据历史的分支记录总结经验,不断调整两个分 支预执行的比例。其实就像训练神经网络一样,一直喂给他正确的数据,他就越来越自信。 • 随着 CPU 预判分支 A 成功的次数越来越多, CPU 对自己的结果就越来越自信,并进一 步加大预执行分支 A 所占的比例,从最初的 50% 到 60% 、
    0 码力 | 47 页 | 8.45 MB | 1 年前
    3
共 21 条
  • 1
  • 2
  • 3
前往
页
相关搜索词
C++高性性能高性能并行编程优化课件07060812Hello算法1.00b41.2繁体中文繁体中文深入深入浅出MFC现代教程高速上手1114172001
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩