python3学习手册(1)无担保:作者不保证文档内容的准确无误,亦不承担由于使用此文档所 导致的任何后果 (2)自由使用:任何人可以出于任何目的而自由地 阅读/链接/打印/转载/引 用/分发/再创作 此文档,无需任何附加条件 若您 阅读/链接/打印/转载/引用/分发/再创作 本文档,则说明接受以 上2个条款。 作者:李茂福 2022-03-26 ~ 2024-03-08 ★第0章、linux执行python脚本的方式 小list,每小list为3元素 print(matrix) matrix = [0 for _ in range(10)] # 下划线表示占位符,如果写 i,有时会提示i未被使用 print(matrix) 三维类推: matrix = [[[0 for _ in range(3)] for _ in range(4)] for _ in range(2)] print(matrix) #查看数组行数与列数 所有条款及内容如下: # (1)无担保:作者不保证源代码内容的准确无误,亦不承担由于使用此源 代码所导致的任何后果 # (2)自由使用:任何人可以出于任何目的而自由地 阅读/链接/打印/转载/ 引用/分发/再创作 此源代码,无需任何附加条件 """ 术语解析: maskint 掩码数字型 ,如 24 ,子网掩码位数, 类型: int maskbyte 掩码字节型 ,如 255.2550 码力 | 213 页 | 3.53 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 09 CUDA C++ 流体仿真实战用于分配一个三维数组。 各维度上的大小通过 cudaExtent 指定,方 便起见我们的 C++ 封装类用了 uint3 表示 大小。 • GPU 的多维数组有特殊的数据排布来保障 访存的高效,和我们 CPU 那样简单地行主 序或列主序(如 a[x + nx * y] )的多维数组 不一样。 • 随后可用 cudaMemcpy3D 在 GPU 的三 维数组和 CPU 的三维数组之间拷贝数据。 一开始是渲染图形的专用硬件 ,会用到一些贴图等,这就是二维的纹理。 • 当输入的浮点坐标不是整数时,由 GPU 硬件提供双线 性插值( bilerp ),比手写的高效许多。 • 当然如果是三维数组,那就是三维纹理对象,访问时是 提供三线性插值( trilerp )的。 CUDA 纹理对象:封装 • 其中 cudaTextureAddressMode 表示采样的坐标超出范 围时采取的措施,有以下几种选择: 投影部分:求速度的散度 • 第一步,如何求出速度场的散度呢?首先速度是一个矢量场,为了 CUDA 对齐方便我们用 了 float4 表示三维矢量,因此速度场在 CUDA 看来就是一个元素类型为 float4 的三维数 组。其散度则是一个标量场,用元素类型为 float 的三维数组来表示。 • 定义求散度的核函数,首先读取速度场周围六个元素的值,然后上下做差得到散度。 投影部分: jacobi 迭代求解压强0 码力 | 58 页 | 14.90 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程图片解释板块和线程 • 如需总的线程数量: blockDim * gridDim • 如需总的线程编号: blockDim * blockIdx + threadIdx 三维的板块和线程编号 • CUDA 也支持三维的板块和线程区间。 • 只要在三重尖括号内指定的参数改成 dim3 类型即可。 dim3 的构造函数就是接受三 个无符号整数( unsigned int )非常简单 。 <<>> 的简写而已。 图片解释三维的板块和线程 • 之所以会把 blockDim 和 gridDim 分三维主要是因为 GPU 的业务常常涉及到三维图形学和二维图像,觉得 这样很方便,并不一定 GPU 硬件上是三维这样排列 的。 • 三维情况下同样可以获取总的线程编号(扁平化)。 • 如需总的线程数量: blockDim * 循环分块一样的效果,有利于缓存局域 性。 • 顺便一提 Taichi 没有用多维的 blockDim ,他统一用一维的网格跨步循环 来扁平化高维循环,这就是为什么我们用 Taichi 的 for 处理二维、三维数据的 stencil 时会比较低效。因为他们根本就不 考虑循环分块的! 胡渊鸣的 Taichi 编程语言: github.com/taichi-dev/taichi 使用共享内存 • 刚刚那样的话对 0 码力 | 142 页 | 13.52 MB | 1 年前3
2022年美团技术年货 合辑跳脱既有的兴趣圈;对于低 频用户,由于信息的缺乏导致其兴趣刻画不完整。因此,我们需要具备拓展用户兴趣 边界的信息扩展能力、对单点信息的扩充能力;即寻找一种新的数据结构,打破二维 线性限制,实现三维立体扩展,基于此种想法,我们从图的角度来重新思考用户行 为建模:以私域线性行为序列作为兴趣刻画基础,以公域全局互联关系图作为兴趣补 充,建立个体差异性与群体共性的连接。 2.2.2 行为 POI 此外, 在问题定义上,为了支持情境维度的进一步扩展,我们使用超立方体(Hyper Cube) 来定义更多维度的用户需求。 图 2 “用户 X 时间 X 地点”等情境下的需求总和 面对以上这种三维模式,模型设计是非常棘手的。以往的模型设计,比如用户兴趣建 模,或者朴素的多层神经网络无法应对这些复杂的用户、时间和地理环境纠缠在一起 的情况。用户兴趣建模通常采用连续建模方法,通过注意力机制提取重要行为偏好信 括拍摄采集设备小型化、视频编解码技术的进步、网络通信技术的提升等。近年来, 由于视觉 AI 算法不断成熟,在视频场景中被广泛应用。本文将主要围绕如何通过视 觉 AI 技术的加持,来提高视频内容创作生产和分发的效率。 算法 < 273 美团 AI——场景驱动技术 说到美团,大家首先会想到点外卖的场景,不过,除了外卖之外,美团还有其他 200 多项业务,涵盖了“吃”、“住”、“行”、“玩”等生活服务场景,以及“美团优0 码力 | 1356 页 | 45.90 MB | 1 年前3
领域驱动设计&中台/化繁为简--DDD驱动复杂业务软件架构的演进指标管理上 下文 三维模型转换 上下文 CAD翻模上下 文 模型检查上下 文 平法模型上下 文 截面钢筋模型 上下文 土建计算上下 文 钢筋计算上下 文 土建计算设置 上下文 钢筋计算设置 上下文 做法上下文 登录与授权 上下文 指标定制上 下文 限界上下文协作关系 报表子域 模型转换子域 CAD翻模上下 文 三维模型转换 上下文 D0 码力 | 33 页 | 1.25 MB | 1 年前3
Java 应用与开发 - 类加载和反射"Java应用与开发"); 5 //取出 arr 数组中 index 为 5 的元素的值 6 Object book = Array.get(arr, 5); 8 //创建一个元素类型为 String 的三维数组 9 Object arr = Array.newInstance(String.class, 3, 4, 10); 10 //获取 arr 数组中 index 为 2 的元素,是二维数组 get(arr1, 2); 12 //获取 arrObj 数组中 index 为 3 的元素,应该是一维数组 13 Object Arr.get(arrObj, 3); 14 //将 arr 强制�换为三维数组 15 String[][][] cast = (String[][][]) arr; 大纲 反射 类的加载、连接和初始化 类加载器 使用反射生成并操作对象 本节习题 接下来⋯ 反射 类的加载、连接和初始化0 码力 | 46 页 | 714.40 KB | 1 年前3
C++高性能并行编程与优化 - 课件 - 06 TBB 开启的并行编程之旅7.被忽视的访存优化:内存带宽与 cpu 缓存机制 8.GPU 专题: wrap 调度,共享内存, barrier 9.并行算法实战: reduce , scan ,矩阵乘法等 10.存储大规模三维数据的关键:稀疏数据结构 11.物理仿真实战:邻居搜索表实现 pbf 流体求解 12.C++ 在 ZENO 中的工程实践:从 primitive 说起 13.结业典礼:总结所学知识与优秀作业点评 封装好了: parallel_for 面向初学者: parallel_for 基于迭代器区间: parallel_for_each 二维区间上的 for 循环: blocked_range2d 三维区间上的 for 循环: blocked_range3d 所有区间类型 第 2 章:缩并与扫描 缩并( reduce ) 1 个线程,依次处理 8 个元素的缩并,花了 7 秒 用电量: 1*7=70 码力 | 116 页 | 15.85 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化• 其实操作系统惰性分配的特性,也是 SPGrid ( Sparsely-Paged-Grid )得以实现的基础 ,他利用 mmap 分配比机器大得多的内存(比如 2048*2028*1024 的三维网格),然后 在里面索引,这样就相当于利用硬件的分页机制实现了稀疏数据结构,既能高效利用内存 ,随机访问和插桩又特别高效。有兴趣可以研究一下他们的论文,也用了莫顿序增强 TLB 和缓存的局域性,非常精彩。 ,同学们可以在作业或 是自己的项目里随意使用。 不要再用 Java 式的二层三层指针 了,用 ndarray<2, float> 声明一 个二维浮点数组, ndarray<3, int> 声明一个三维整型数组。 这里的 ndarray 通过 a(x, y) 来 索引,看起来像 Fortran ,但是 实际上还是 YX 序,和静态数组 的 a[y][x] 一样的,指标出现的顺 序并无关紧要。 ……0 码力 | 147 页 | 18.88 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - Zeno 中的现代 C++ 最佳实践 ,不会出错,而是 会自动把 float 转换成 int 类型。同样地如 果输入是 float ,却调用了 get的 话,那么就相当于 vec3f(val) 也就是三个分 量都是 val 的三维矢量,同样不会出错。 MaxBoxPrimitive 节点的内部: apply 的定义 通过 set_output(“name”, std::move(obj)) 来指定名字为 name 的输出端口对象为 0 码力 | 54 页 | 3.94 MB | 1 年前3
Rust语言核心竞争力-庄晓立科学运算/机器学习 • 图形图像处理 • 虚拟现实 ……都有系统编程的身影 • 操作系统 • 虚拟机/容器 • 数据库 • 3D游戏引擎 • 网络服务器 • 浏览器引擎 • 编译器、解释器 • 三维建模/动画/渲染 数据中心 • CPU/GPU • 内存/硬盘 • 电力 • 网络流量 • 其他设备和人员维护费用 都是白花花的银子,“硬件很便宜”的说法不靠 谱 你能买最新硬件,对手也能,无助于提升竞争力0 码力 | 51 页 | 1.09 MB | 1 年前3
共 91 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10













