- 博客(25)
- 问答 (6)
- 收藏
- 关注
原创 AMD RDNA3 GPU架构解析
本文会通过把AMD的RDNA3架构为例比喻为**“施工公司”**工作模式,深入理解GPU如何高效处理顶点着色、像素计算等任务。在“施工公司模式”的类比中讨论RDNA3架构的两大核心思想: 批量操作SIMD和快速切换Wavefront隐藏延迟
2025-03-03 11:30:38
872
原创 AMD GPU 的 Context Roll机制
Context Roll 是AMD GPU 流水线状态更新的核心机制,本文基于AMD官方文档、开源驱动代码(PAL)以及Radeon GPU Profiler 工具的使用,探讨以下三个问题:硬件是如何实现低开销的流水线状态切换的?寄存器组的消耗在哪些场景会造成性能瓶颈?RGPcontext roll栏目对开发者有什么帮助?
2025-02-25 22:00:24
962
翻译 Radeon GPU Profiler的overview用法
本文是对的Radeon GPU Profiler(RGP)的学习记录,原文是AMD的官网介绍,本文翻译overview部分。主要涉及Frame summary 、Barriers、 Context rolls 、Most expensive events、Pipelines这几个部分。
2025-01-14 18:48:17
76
翻译 Radeon GPU Profiler的Events Windows用法(二)
这是翻译AMD Radeon Gpu Profiler 介绍的系列,本文翻译(非机翻) EventWindow 的第二部分AMD-RGP 的Events Windows 一共有五个部分(Wavefront occupancy、Event timing、The anatomy of an event、Pipeline state、Instruction timing),本文翻译后面两个部分。
2024-06-07 15:48:12
434
翻译 Radeon GPU Profiler的Events Windows用法(一)
radeon gpu profiler 的用法,本文翻译 EventWindow 的第一部分(非机翻)AMD-RGP 的Events Windows 一共有五个部分(Wavefront occupancy、Event timing、The anatomy of an event、Pipeline state、Instruction timing),本文翻译前三部分。
2024-05-14 09:11:11
484
翻译 AMD GPU 工具RGP
(官网介绍翻译,非机翻)首先会简要介绍硬件架构,以了解这个度量标准的来源。然后我们将解释在编译时和运行时会限制occupancy的因素。我们还将帮助你使用Radeon™ GPU Profiler等工具识别受occupancy限制的工作负载,并提供缓解问题的潜在线索。最后,最后一节将总结本文涉及的所有概念,并针对实际问题提供实用解决方案。
2024-04-23 15:00:12
392
翻译 Anti-Aliasing with Adreno
Qualcomm® Adreno™ GPU实现了多采样抗锯齿(MSAA)的扩展 glFramebufferTexture2DMultisampleEXT ,且能够使得 2x MSAA的执行不会在渲染管线中产生过多的额外成本。Adreno GPU 可以在 GMEM(Graphics Memory,它是一种高速缓存) 中执行 multi-sampling,然后将其resolve(这里的resolve也就是“GMEM Store” )到一个单采样纹理中。
2024-02-02 08:57:07
156
翻译 Vulkan-Sample-MSAA (Multisample anti-aliasing)
Aliasing是以低于原始信号采样率的采样率进行采样导致的。在图形学中,这个过程可以描述为:基于一个会产生artifacts的分辨率去计算像素值,从而在模型边缘产生锯齿。多重采样抗锯齿(Multisample anti-aliasing,MSAA)是一种可以减少像素采样误差的技术。
2024-01-22 07:55:34
1333
1
原创 单元测试基础下篇—— JUnit/Mockito/Robolectric测试长什么样
本篇主要内容是Junit、Mockito、Robolectric的单元测试代码的基础写法的汇总。从添加依赖项到各个单元测试的hello word case,分别举例说明。
2021-11-29 08:15:00
856
原创 单元测试基础上篇——几大常用框架对比
本文介绍了android里常用的几种单元测试框架:JUnit、Mockito、PowerMock、Robolectric、Espresso 各自的特点和适用场景。个人理解,写单元测试首选Mockito。但是怎么避免mockito要依赖android库这个弱项呢,把代码解耦,比如使用MVP,将业务逻辑与View逻辑分开,这样业务逻辑(Presenter)就不会对Android库有任何依赖,就不需要Mock它们)。那么View层往往由Activity / Fragment实现,使用Robolectric。
2021-11-20 23:23:47
2325
原创 kotlin码上开学练习题
这个系列是扔物线码上开学系列课程的课后练习题,记录的也主要是一个java程序员在转kotlin 时重点关注的一些用法的比较。《Kotlin 的变量、函数和类型》子类重写父类的override函数,能否修改它的可见性;以下的写法有什么区别?可空变量的声明、初始化和传参《Kotlin 里那些「不是那么写的」》单例练习、数组和集合的练习;《Kotlin 里那些「更方便的」》主构造器和字符串模板$的练习; 循环的用法;为什么数组的 filter 之后变成 List
2021-09-20 19:00:38
917
原创 android addView是如何渲染到屏幕上的(2)——WindowManager和ViewRootImpl
1.生命周期走到 onResume() 时,ActivityThread 会把PhoneWindow的decorView传递给WindowManagerGlobal.2.WindowManagerGlobal 内部维护了一个ViewRootImpl list,ViewRootImpl负责DecorView的测量布局绘制的调用,也负责从WMS获取TouchEvent事件。3.ViewRootImpl 通过 WindowSession,实现了ViewRootImpl和WMS的跨进程通信。
2021-07-18 21:18:49
750
原创 android addView是如何渲染到屏幕上的(1)——LayoutInflactor和PhoneWindow
1.Activity和Dialog都持有一个Window对象,PhoneWindow最重要的是持有了一个mDecorView。 2.用户设置给activity的xml,最终会通过LayoutInflactor解析成为一个个的view节点,存储在viewgroup的view数组 mChildren里面。 3.当Activity和Dialog生命周期走到onResume时,PhoneWindow的mDecorView会被设置给WindowManager。
2021-07-06 23:31:52
637
2
原创 从android系统服务的缓存机制看基于容器的单例模式
android的后台运行了很多系统服务,它们在系统启动时被SystemServer开启,开发人员通过Contex可以到获取这些服务。服务的创建方法被封装成ServiceFetcher对象,统一注册到一个管理类SystemServiceRegistry中,在context向管理类获取某个Service时,这个Service就会被创建并以单例形式保存在这个Context中,减少资源消耗。本文基于Android12的源码,分析系统服务的注册和创建过程,是如何运用基于容器的单例模式的。
2021-05-13 17:06:05
365
翻译 【搬运】AsyncTask is Deprecated, Now What?
AsyncTask 在android11 已经被废除了,那么多线程应该使用什么实现呢。
2020-10-11 22:27:40
2107
原创 [Linux] 配置Android 开发环境
一, 安装 Java Jdk 请前往官网下载, 比如:[jdk-8u231-linux-x64.tar.gz](javascript: void(0)) 移文件到 /usr/local: sudo mv jdk-8u231-linux-x64.tar.gz /usr/local 打开/usr/local目录, 打开终端解压安装包,没错误提示就是安装成功了: ...
2020-04-24 11:17:06
1428
原创 PCL可视化-改进点云的点选、框选(不需要配合x|q|shift键)
一、前提点云的点选、框选事件,现在需要这样的操作:如果要在屏幕上框选点云,需要先点击屏幕、按下键盘x键出发框选,用鼠标框选、按下键盘x键表示结束框选、按下q键表示退出交互(到这一步的实现参考这篇)。这种键盘+鼠标的操作模式使用上确实太麻烦,所以这一篇在前一篇的基础上,用模拟键盘、鼠标消息的方法,代替了键盘+鼠标的交互模式。方法很野路子,有好办法的还请指教。1、环境:pcl1.8(vtk...
2019-01-09 20:40:16
5055
7
原创 PCL可视化-vtk窗口嵌入mfc对话框(pcl1.8All in one安装的库直接可以用,不用自己编译)
一、环境介绍:1、pcl1.8All in one直接安装的,包括vtk在内的一些库都没有自己编译过。2、vs2015(很多博客的介绍,需要自己编译支持MFC的VTK啊,或者需要修改源码啊,最终经过实验,只用pcl安装包里带的vtk库也是可以完成的。)二、实现过程1、新建mfc对话框程序2、拖控件对话框中拖出一个CStaitc控件,在控件上右键-》添加变量,添加一个名为...
2018-12-19 21:33:13
2635
5
原创 PCL可视化-点选、框选(封装为类)
Pcl开发的应用中,当需要用户对点云做一些操作的时候,需要从屏幕拾取点云中某点的三维坐标。关于如何运用PCL实现这部分功能,很多介绍都是基于控制台程序的,调用写在main函数里,但是大部分时候,我们需要把这些事情封装在类中,这时候有一些小小的差别。这次学习主要是记录了对回调机制的理解,封装pcl的选点的回调函数为类的成员函数,完成拾取屏幕坐标点的功能,也记录下完整的类和调用部分的代码。 ...
2018-11-20 20:45:10
5336
3
原创 pcl点云的滤波与特征点学习笔记
参考链接:https://yq.aliyun.com/ziliao/431359 点云数据时不可避免的存在噪声,或者离群点(离主体点云即被测物体点云较远的离散点)。滤波是点云数据处理流程中的第一步,往往对后续处理管道影响很大,只有在滤波预处理中将噪声点、离群点、孔洞、数据压缩等按照后续处理定制,才能够更好的进行配准、特征提取、曲面重建、可视化等后续应用处理。目录一、滤波处理...
2018-11-18 20:37:50
4934
1
原创 maxscript脚本:模型导出为json,用于three.js加载
一、总的任务1.数据来源:将3dsmax中建好的模型,通过烘焙反贴,赋予SelfIllumMap(自发光材质)一个bitmap(位图贴图),用于表达物体的光影效果。加上本身的diffuseMap(本色贴图/漫反射贴图),每个材质一共有两个材质贴图。2.任务:three.js 可以加载json格式的材质,其中包含了metadata、scale、materials、vertices、m...
2018-08-03 20:14:28
5749
2
原创 arcengine计算POI点的服务范围
问题描述: 已有点(point)图层,利用Arcengine求这些点的服务范围解决思路: 点密集的地方,每个点的服务范围就小。点稀疏的地方,每个点的服务范围就大。可以用求泰森多边形的思路来求解。 简单说自己理解的Voronoi图的特点,这是一组多边形,这样一组多边形将整个平面分成N个区域,每个区域中包含一个POI点(Point of Inf...
2017-03-30 19:39:07
987
原创 写一个webSocket(重点记录理解servlet的使用方法)
总述:在当前的web工程中加入socket的服务器端 应用场景:因为在配合师兄做一个物联网的项目,我负责网页端的数据展示。需要用到socket接收传感器发来的数据,然后实时展示出来 为了完成这个功能,我要解决两个问题:怎么启动socket去监听客户端发来的消息。怎么在网页端访问server读到的结果。 好,接下来就这两个方面记录解决的思路。首先说明一下要涉及到的
2017-03-08 19:00:20
5158
空空如也
C++ 嵌套vector中使用erase,没有真正删除元素
2018-10-17
pcl点云数据的线特征提取的方案
2018-10-10
MFC CMFCPropertyGridCtrl 如何判断property是不是存在
2018-09-28
MFC DockablePane 窗口,为什么移动窗口边框会有混乱?
2018-09-26
TA创建的收藏夹 TA关注的收藏夹
TA关注的人