adreno https://www.e-learn.cn/tag/adreno zh-hans 美图t9适配分析日志 https://www.e-learn.cn/topic/3443764 <span>美图t9适配分析日志</span> <span><span lang="" about="/user/44" typeof="schema:Person" property="schema:name" datatype="">a 夏天</span></span> <span>2020-02-28 16:24:51</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"> <h1>美图T9 (tiffany)</h1> <h4>CPU型号相同,并且Lineage官方有适配的机型如下</h4> <table><thead><tr><th>代号</th> <th>GPU型号</th> <th>适配Lineage版本</th> <th>摄像头</th> </tr></thead><tbody><tr><td>tiffany</td> <td>Adreno 512</td> <td></td> <td>前:索尼IMX363+三星 4E8,后:索尼IMX363+三星 4E8</td> </tr><tr><td>jason</td> <td>Adreno 512</td> <td>15.1, 16.0</td> <td></td> </tr><tr><td>zangya</td> <td>Adreno 509</td> <td>16.0</td> <td></td> </tr><tr><td>zangyapro</td> <td>Adreno 512</td> <td>16.0</td> <td></td> </tr><tr><td>X01BD</td> <td>Adreno 512</td> <td>16.0</td> <td></td> </tr></tbody></table><div class="alert alert-success" role="alert"><p>来源:<code>oschina</code></p><p>链接:<code>https://my.oschina.net/u/222749/blog/3178269</code></p></div></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/adreno" hreflang="zh-hans">adreno</a></div> <div class="field--item"><a href="/tag/shuma" hreflang="zh-hans">数码</a></div> </div> </div> Fri, 28 Feb 2020 08:24:51 +0000 a 夏天 3443764 at https://www.e-learn.cn Adreno平台编程 https://www.e-learn.cn/topic/3230555 <span>Adreno平台编程</span> <span><span lang="" about="/user/213" typeof="schema:Person" property="schema:name" datatype="">我们两清</span></span> <span>2020-01-15 17:05:20</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div id="content_views" class="markdown_views prism-atom-one-dark"> <!-- flowchart 箭头图标 勿删 --> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg><p><strong>一、简介</strong><br /> Snapdragon是当今Android中功能最强大且使用最广泛的处理器之一,以及Windows智能手机和平板电脑。Snapdragon处理器将所有一流的移动组件集中在一块芯片上,确保基于Snapdragon的设备以极为节能的集成解决方案提供最新的移动用户体验。</p> <p><strong>二、Adreno平台编程</strong><br /> Direct3D 11.1功能级别9_3概述<br /> Microsoft Direct3D 11.1 API引入了功能级别的概念。 功能级别定义了GPU必须最少支持的一组功能。 Direct3D 11.1可以通过不同的功能级别支持一系列不同的GPU。 Adreno超出了Direct3D 11.1功能级别9_3的要求。 应用程序开发人员应将其应用程序定位为支持9_3级功能,以确保与Adreno GPU完全兼容。 Microsoft在http://msdn.microsoft.com/en#us/library/windows/desktop/ff476876(v=vs.85).aspx中提供了Direct3D 11.1中每个功能级别支持的功能列表。<br /> Direct3D功能级别的选择是在设备创建时通过使用D3D11CreateDevice()完成的。 创建设备时,应用程序会传递一系列功能级别以尝试创建。 为了与Adreno GPU兼容,应用程序应请求D3D_FEATURE_LEVEL_9_3设备(功能级别9_2和也支持9_1)。 以下代码块演示为Adreno GPU创建D3D11Device。<br /> //指定Direct3D功能级别9_3<br /> D3D_FEATURE_LEVEL featureLevels[] =<br /> {<br /> D3D_FEATURE_LEVEL_9_3<br /> };<br /> Microsoft::WRL::ComPtr d3dDevice;<br /> Microsoft::WRL::ComPtr d3dDeviceContext;<br /> UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT;<br /> #if defined(_DEBUG)<br /> creationFlags |= D3D11_CREATE_DEVICE_DEBUG;<br /> #endif<br /> if (FAILED(<br /> D3D11CreateDevice(<br /> nullptr,<br /> D3D_DRIVER_TYPE_HARDWARE,<br /> nullptr,<br /> creationFlags,<br /> featureLevels,<br /> ARRAYSIZE(featureLevels),<br /> D3D11_SDK_VERSION,<br /> &amp;d3dDevice,<br /> nullptr,<br /> &amp;d3dDeviceContext )<br /> )<br /> {<br /> // error…<br /> }</p> <p>WinRT和C ++组件扩展(C ++ / CX)<br /> 必须针对WinRT API编写旨在使用Windows RT(适用于ARM的Windows 8)中具有Direct3D 11.1的Adreno GPU的Metro风格或Modern UI风格的应用程序。 WinRT是Windows RT和Windows 8中新的Windows运行时。WinRT替换了Windows早期版本中的Win32 API,并形成了<br /> Windows RT(和Windows 8)Metro应用程序的基础。 WinRT是本机API,目前Microsoft不会将Direct3D公开给托管(例如C#/ VB)应用程序。 尽管有一些项目在Metro下为Direct3D提供托管包装,但Microsoft建议Direct3D Metro应用程序用C ++编写。<br /> 为了获得对C ++中WinRT API的访问,Microsoft引入了新的语言扩展,称为C ++组件扩展(C ++ / CX)。 审查新的语言功能超出了本文档的范围; 但是,可以在以下位置找到有关C ++ / CX和WinRT的出色介绍: http://www.codeproject.com/Articles/262151/Visual#Cplusplus-and-WinRT-Metro-Some-fundamentals.<br /> 除了本机C ++应用程序之外,Windows RT还允许开发人员使用各种编程语言和工具来构建应用程序。 人们可以使用C#,C ++或Visual Basic对应用程序进行编程,同时使用XAML声明性地描述用户界面。 或者,您可以使用HTML5,CSS3和JavaScript。 有关这些的更多信息,请参见: http://msdn.microsoft.com/en#US/windows/apps/br229512。<br /> 但是,在Windows 8上寻求最佳性能的开发人员应将Microsoft DirectX 11.1与C ++结合使用。</p> <p>检查功能支持:<br /> Direct3D 11功能级别定义了GPU必须支持的最少功能集以及几个可选功能。 应用程序可以在运行时使用ID3D11Device :: CheckFeatureSupport()方法检查可选功能。 例如,<br /> 应用程序可以确定驱动程序是否在基于图块的渲染GPU上运行。<br /> 以下代码段检查基于图块的渲染:<br /> D3D11_FEATURE_DATA_ARCHITECTURE_INFO info;<br /> d3dDevice-&gt;CheckFeatureSupport(D3D11_FEATURE_ARCHITECTURE_INFO,<br /> &amp;info, sizeof(info));<br /> if ( info.TileBasedDeferredRenderer )<br /> {<br /> // TBR present<br /> }<br /> Adreno图形驱动程序会将TileBasedDeferredRenderer设置为TRUE。 可以在运行时使用ID3D11Device :: CheckFeatureSupport()查询许多其他功能。 有关可用查询的完整列表,请参阅: http://msdn.microsoft.com/en#us/library/windows/desktop/ff476497(v=vs.85).aspx</p> <p><strong>三、总结</strong><br /> 本篇文章我们介绍了Adreno平台编程相关内容,以及一些资源的链接,大家对此感兴趣的话,不妨去高通开发者网站进行更为深入的了解。同时在接下来我们将介绍Adreno平台程序优化的内容,带大家去了解Adreno平台。</p> </div><div class="alert alert-success" role="alert"><p>来源:<code>CSDN</code></p><p>作者:<code>weixin_38498942</code></p><p>链接:<code>https://blog.csdn.net/weixin_38498942/article/details/103988756</code></p></div></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/adreno" hreflang="zh-hans">adreno</a></div> <div class="field--item"><a href="/tag/direct3d" hreflang="zh-hans">direct3d</a></div> </div> </div> Wed, 15 Jan 2020 09:05:20 +0000 我们两清 3230555 at https://www.e-learn.cn Adreno GPU SDK例程分析(1) https://www.e-learn.cn/topic/2715328 <span>Adreno GPU SDK例程分析(1)</span> <span><span lang="" about="/user/85" typeof="schema:Person" property="schema:name" datatype="">社会主义新天地</span></span> <span>2019-12-21 07:07:02</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div id="content_views" class="markdown_views prism-atom-one-dark"> <!-- flowchart 箭头图标 勿删 --> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg><p><strong>一、简介</strong><br /> Adreno GPU SDK提供了非常完善的框架,我们可以通过制作出很多有趣的东西,在Sample路径下的实例中,也提供了大量的实例来向大家展示其强大的功能。那么在接下来,我将带领大家对这些例程进行分析和学习。</p> <p><strong>二、OpenGL ES例程分析</strong><br /> 进入Sample下的OpenGLES文件夹,大家可以看到大量的实例:<br /><img alt="在这里插入图片描述" class="b-lazy" data-src="https://img-blog.csdnimg.cn/20191218103026133.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODQ5ODk0Mg==,size_16,color_FFFFFF,t_70" data-original="https://img-blog.csdnimg.cn/20191218103026133.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODQ5ODk0Mg==,size_16,color_FFFFFF,t_70" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /><br /> 我们选择Skining例程吧,进入后会看到Scene.cpp和Scene.h两个文件,我们理所当然会先看一下Scene.h,看下它里面都有什么。<br /> 此处定义了一个Shader结构体:<br /> struct SHADER_CONSTANTS<br /> {<br /> INT32 m_slotWorldMatrix;<br /> INT32 m_slotViewMatrix;<br /> INT32 m_slotProjMatrix;</p> <p>INT32 m_slotMaterialDiffuse;<br /> INT32 m_slotMaterialSpecular;<br /> INT32 m_slotMaterialAmbient;<br /> };<br /> 另外还有一个包含了Adreno SDK的框架函数的类,它继承自CFrmApplication。详细对SDK框架有过了解的朋友都知道这几个函数:<br /> virtual BOOL Initialize();<br /> virtual BOOL Resize();<br /> virtual VOID Update();<br /> virtual VOID Render();<br /> virtual VOID Destroy();<br /> CSample( const CHAR* strName );</p> <p>我们这里就直接跳过,不熟悉的可以自行百度。接下来进入Scene.cpp中,它肯定会实现.h文件里面定义到的东西,这是毋庸置疑的。首先肯定是头文件这块了,除了包含有框架内定义的东西和Scene.h外,还有与OpenGL ES相关的几个头文件在内:<br /> #include &lt;EGL/egl.h&gt;<br /> #include &lt;GLES2/gl2.h&gt;<br /> #include &lt;GLES2/gl2ext.h&gt;<br /> 这块的编译就稍显复杂了,其实这几个头文件也是框架里面的,但为什么我要单独拎出来,就要在这里为大家解释下了。进入当目录下的Android/jni,这里有Android.mk和一个Application.mk文件,这是个可以由NDK进行编译的东西。接下来带大家看下Android.mk文件:<br /> …<br /> LOCAL_PATH := $(call my-dir)<br /> SRC_PATH := …/…<br /> INC_PATH := …/…/…/…/…/Inc<br /> FRM_PATH := $(SRC_PATH)/…/…/Framework<br /> FRM_OPENGL_PATH := $(FRM_PATH)/OpenGLES<br /> FRM_ANDROID_PATH := $(FRM_PATH)/Android</p> <p>include $(CLEAR_VARS)</p> <p>LOCAL_MODULE := Skinning</p> <p>LOCAL_SRC_FILES := $(SRC_PATH)/Scene.cpp <br /> $(FRM_OPENGL_PATH)/FrmFontGLES.cpp <br /> $(FRM_OPENGL_PATH)/FrmMesh.cpp <br /> $(FRM_OPENGL_PATH)/FrmPackedResourceGLES.cpp <br /> $(FRM_OPENGL_PATH)/FrmResourceGLES.cpp <br /> $(FRM_OPENGL_PATH)/FrmShader.cpp <br /> $(FRM_OPENGL_PATH)/FrmUserInterfaceGLES.cpp <br /> $(FRM_OPENGL_PATH)/FrmUtilsGLES.cpp <br /> $(FRM_PATH)/FrmApplication.cpp <br /> $(FRM_PATH)/FrmFont.cpp <br /> $(FRM_PATH)/FrmInput.cpp <br /> $(FRM_PATH)/FrmPackedResource.cpp <br /> $(FRM_PATH)/FrmUserInterface.cpp <br /> $(FRM_PATH)/FrmUtils.cpp <br /> $(FRM_ANDROID_PATH)/FrmApplication_Platform.cpp <br /> $(FRM_ANDROID_PATH)/FrmFile_Platform.cpp <br /> $(FRM_ANDROID_PATH)/FrmStdlib_Platform.cpp <br /> $(FRM_ANDROID_PATH)/FrmUtils_Platform.cpp <br /> $(FRM_ANDROID_PATH)/FrmNoise_Platform.cpp</p> <p>LOCAL_C_INCLUDES := $(SRC_PATH) <br /> $(FRM_PATH) <br /> $(INC_PATH) <br /> $(FRM_OPENGL_PATH) <br /> $(FRM_ANDROID_PATH)</p> <p>LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2</p> <p>LOCAL_CFLAGS += -Wno-write-strings -Wno-conversion-null</p> <p>LOCAL_STATIC_LIBRARIES := android_native_app_glue</p> <p>include $(BUILD_SHARED_LIBRARY)</p> <p>$(call import-module,android/native_app_glue)</p> <p>这里编译了整个框架中最核心的一些内容,如果我们要自行编写一些.cpp文件的话,只需要:$(SRC_PATH)/ 下加入即可,这里链接了OpenGL ES的v2版本,相信熟悉OpenGL ES的朋友已经发现了,这里使用到的是图形渲染管线而非固定渲染管线,因此我们需要实现顶点着色器和片段着色器等这一大堆复杂的东西。<br /> 不过大家仔细研究下Scene.cpp,会发现这里并没有这些复杂的算法相关的东西,这对于我们来说当然是好事情了,毕竟这部分东西是相当复杂的。在整个SDK框架中,它给我们在Bin/Samples/Shaders下提供了大量的Shader,我们要做的仅仅是读懂它就可以了,在使用的时候通过函数加载进程序里面,如这里的:<br /><img alt="在这里插入图片描述" class="b-lazy" data-src="https://img-blog.csdnimg.cn/20191218103136610.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODQ5ODk0Mg==,size_16,color_FFFFFF,t_70" data-original="https://img-blog.csdnimg.cn/20191218103136610.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODQ5ODk0Mg==,size_16,color_FFFFFF,t_70" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /><br /> 我们只需要调用这里的顶点着色器和片段着色器,然后就可以获取里面提供的接口变量,并对其进行调整,绘制出想要的效果来了。</p> <p><strong>三、总结</strong><br /> 好了,本篇文章我们就先讲到这里。大家可以先下载SDK自己研究下,在接下来我们将进入框架对此例程进行解读。</p> </div><div class="alert alert-success" role="alert"><p>来源:<code>CSDN</code></p><p>作者:<code>weixin_38498942</code></p><p>链接:<code>https://blog.csdn.net/weixin_38498942/article/details/103593092</code></p></div></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/sdk" hreflang="zh-hans">sdk</a></div> <div class="field--item"><a href="/tag/adreno" hreflang="zh-hans">adreno</a></div> <div class="field--item"><a href="/tag/virtual" hreflang="zh-hans">virtual</a></div> </div> </div> Fri, 20 Dec 2019 23:07:02 +0000 社会主义新天地 2715328 at https://www.e-learn.cn Adreno Gpu sdk例程用法 https://www.e-learn.cn/content/qita/2085214 <span>Adreno Gpu sdk例程用法 </span> <span><span lang="" typeof="schema:Person" property="schema:name" datatype="">匿名 (未验证)</span></span> <span>2019-12-02 23:26:52</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post"> <div class="htmledit_views" id="content_views"> <p>大家好,今天小白给大家简单介绍下,Adreno Gpu sdk中Samples里面提供的示例的编译方法,欢迎一起学习交流。</p> <p>一、什么是Adreno Gpu sdk?</p> <p></p> <p>SDK是一个综合资源,支持多个版本的OpenGL ES,OpenCL,DirectX API,现在还增加了对Vulkan的支持。</p> <p>如果您不熟悉GPU编程并希望了解如何开始,或者您已经是专家并希望了解高级优化技术和功能实现,那么Adreno SDK就适合您。使用Snapdragon Profiler提供的见解,分析和改善应用中的图形和计算性能。</p> <p>你可以:<a href="https://developer.qualcomm.com/software/adreno-gpu-sdk" rel="nofollow">https://developer.qualcomm.com/software/adreno-gpu-sdk</a>处下载该链接。</p> <p>二、配置环境并编译apk</p> <p>1. 首先下载android ndk pacage:<a href="https://developer.android.google.cn/ndk/downloads/" rel="nofollow">https://developer.android.google.cn/ndk/downloads/</a></p> <p>2. 然后设置环境变量:</p> <p>3. 设置结束以后,在命令行下输入:ndk-bulid,查看该环境变量是否设置成功;</p> <p>4. 进入到:AdrenoSdK/Development/Samples/OpenGLEs/目录下,任意选择一个例程,进入到该例程的:android/jni目录下,执行:</p> <p>ndk-build操作,此时可以编译出一些动态库(.so文件)</p> <p>5. 执行cd ..,回退到上一层目录,执行:InstallAssets.bat,该操作在当前目录下创建assets/Samples目录,并将根目录中bin文件夹中的内容拷贝到创建的路径下。</p> <p>6. 紧接着按照编译文档,应该执行:android project -p . -t android-14,但是由于本机环境中的android sdk版本比较高,不支持android project指令,所以该执行未能成功执行。(接着有条命令:ant -debug,执行该指令需要安装ant,安装结束后,执行该指令发现,需要build.xml,但是当前路径下并无该文件,然后尝试将apk导入到eclipse中)</p> <p>7 首先是给eclipse配ADT环境,这个过程比较简单,可以网上百度;</p> <p>8,配置结束后,导航到File---&gt;Import可以看到:android目录,点击:Existing Android Code Into Workspace,点击Browser选择例程的根目录,选择号以后,点击finish。(android目录,jni的上一层)</p> <p>9. 然后右键项目名称,点击:run as,选择Android application。</p> <p>10,编译成功的话,会在bin目录下生成:xx.,apk,将该apk安装到android设备上,即可以看见该例程的效果。</p> <p>三、总结</p> <p>本篇主要简单介绍了Adreno Gpu SDK的功能,编译环境搭建,例程编译等,欢迎一起学习交流。</p> <p></p> <p></p> </div> </div><div class="zhuanzai"></div><div>文章来源: https://blog.csdn.net/weixin_38498942/article/details/88853870</div></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/adreno" hreflang="zh-hans">adreno</a></div> </div> </div> Mon, 02 Dec 2019 15:26:52 +0000 匿名 1185072 at https://www.e-learn.cn [转帖]微软 SQ1 参数一览:8 核 Kryo 495,Adreno 685 GPU https://www.e-learn.cn/topic/1000429 <span>[转帖]微软 SQ1 参数一览:8 核 Kryo 495,Adreno 685 GPU</span> <span><span lang="" about="/user/82" typeof="schema:Person" property="schema:name" datatype="">不想你离开。</span></span> <span>2019-12-01 22:38:33</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div id="cnblogs_post_body" class="blogpost-body"> <h1 class="article-title">微软 SQ1 参数一览:8 核 Kryo 495,Adreno 685 GPU</h1> <div class="sub-line"> <div class="cnblogs_code"> <pre>http://www.myzaker.com/article/5d989ef68e9f0977765e5506/ 2019.10.3 微软发布的 surface pro x 使用了 高通的CPU..据说能运行 32位的程序 但是无法运行 64位的. </pre> </div> <p> </p> </div> <div id="article" class="article_content"> <div id="content"> <p><a class="s_tag" href="http://iphone.myzaker.com/zaker/link.php?pk=5d989ef68e9f0977765e5506&amp;b=aHR0cHM6Ly93d3cuaXRob21lLmNvbS8=&amp;bcode=0ab2c427&amp;target=_new" target="_blank" rel="nofollow">IT 之家</a>10 月 5 日消息 日前,微软发布了一款 Surface Pro X 平板电脑,外观比 Surface Pro 7 更加现代化,而且还搭载了一枚名为 "Microsoft SQ1" 的处理器,即骁龙 8cx 的定制版。现在外媒 Notebookcheck 为我们汇总了一下这枚处理器的参数,一起来看一下吧。</p> <p> </p> <div id="id_imagebox_0" class="img_box"> <div class="content_img_div perview_img_div"><p></p><img class="b-lazy" data-src="https://www.eimg.top/images/2019/12/24/46d6da459976fe1b79b6055311680101.jpg" data-original="https://www.eimg.top/images/2019/12/24/46d6da459976fe1b79b6055311680101.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /><p></p></div> </div> 总的来看,微软 SQ1 基于高通 Snapdragon 8cx,但具有更高的 CPU 和 GPU 核心。CPU 核心时钟频率高达 3 GHz ( 8cx 为 2.84 GHz ) 。4 个 Kryo 495 金核基于 ARM Cortex-A76 架构,4 个 Kryo 495 银核为 ARM Cortex-A55,频率大约为 1.9 GHz。集成了 X24 LTE 调制解调器,支持高达 2 Gbps 的下载速度。此外,SoC 集成了 ac-Wifi 和双通道 1866 MHz LPDDR4x 内存控制器。 <p> </p> <p>根据高通公司的说法,这颗处理器性能应该类似于英特尔酷睿 i5 第 8 代 U 系列 ( 如 i5- 8250U ) 。GPU Adreno 685 也是一个定制的版本,微软称,达到了 2 TFlops 的性能,而 Adreno 680 则为 1.8 TFlops。</p> <p>该芯片采用了台积电 7nm 工艺,非常节能。因此,使用骁龙 8cx 的笔记本电脑可以采用被动散热。</p> <p> </p> <div id="id_imagebox_1" class="img_box"> <div class="content_img_div perview_img_div"><p></p><img class="b-lazy" data-src="https://www.eimg.top/images/2019/12/24/2701f512d2436a1ef39a40d3cbfe8fc7.jpg" data-original="https://www.eimg.top/images/2019/12/24/2701f512d2436a1ef39a40d3cbfe8fc7.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /><p></p></div> </div> <div id="id_imagebox_2" class="img_box"> <div class="content_img_div perview_img_div"><p></p><img class="b-lazy" data-src="https://www.eimg.top/images/2019/12/24/f111f7a65404a70bea78634c96f7e26e.jpg" data-original="https://www.eimg.top/images/2019/12/24/f111f7a65404a70bea78634c96f7e26e.jpg" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /><p></p></div> </div> <p> </p> <div id="recommend_bottom"> </div> <div id="article_bottom"> </div> </div> </div> <div class="from">以上内容由"IT之家"上传发布 <a href="https://www.ithome.com/0/448/734.htm" rel="nofollow" target="_blank">查看原文</a></div> </div><div class="alert alert-warning" role="alert"><p>来源:<code>https://www.cnblogs.com/jinanxiaolaohu/p/11719303.html</code></p></div></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/bijibendiannao" hreflang="zh-hans">笔记本电脑</a></div> <div class="field--item"><a href="/tag/diannao" hreflang="zh-hans">电脑</a></div> <div class="field--item"><a href="/tag/adreno" hreflang="zh-hans">adreno</a></div> </div> </div> Sun, 01 Dec 2019 14:38:33 +0000 不想你离开。 1000429 at https://www.e-learn.cn Adreno OpenCL Application Development(1) https://www.e-learn.cn/topic/706143 <span>Adreno OpenCL Application Development(1)</span> <span><span lang="" about="/user/205" typeof="schema:Person" property="schema:name" datatype="">耗尽温柔</span></span> <span>2019-11-29 23:48:59</span> <div class="field field--name-body field--type-text-with-summary field--label-hidden field--item"><div id="content_views" class="markdown_views prism-atom-one-dark"> <!-- flowchart 箭头图标 勿删 --> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg><p><strong>一、简介</strong></p> <p>OpenCL是Khronos集团开发和维护的一个开放的、免版税的异构系统跨平台并行编程标准。它的设计有助于开发人员充分利用现代异构系统中的巨大计算能力,极大地促进跨平台的应用程序开发。<br /> Snapdragon平台上的Qualcomm®Adrenotm GPU系列是最早完全支持OpenCL的移动GPU之一。下图为Heterogeneous系统使用OpenCL框架图: <br /><img alt="在这里插入图片描述" class="b-lazy" data-src="https://img-blog.csdnimg.cn/20190918091758402.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODQ5ODk0Mg==,size_16,color_FFFFFF,t_70" data-original="https://img-blog.csdnimg.cn/20190918091758402.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODQ5ODk0Mg==,size_16,color_FFFFFF,t_70" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /><br /><strong>二、OpenCL On Snapdragon</strong></p> <p>Snapdragon是当今Android操作系统和物联网(IOT)市场中功能最强大、应用最广泛的移动平台之一。Snapdragon移动平台将一流的移动组件集中在一块芯片上,确保基于Snapdragon的设备以极为节能的集成解决方案提供最新的移动用户体验。<br /> Snapdragon是一个多处理器系统,包括多模式调制解调器、CPU、GPU、DSP、定位/GPS、多媒体、电源管理、射频、软件和操作系统优化、内存、连接(Wi-Fi、蓝牙)等组件。</p> <p>1、 OpenCL在Adreno A3x、A4x和A5x GPUs上完全受支持,并且完全符合OpenCL标准。OpenCL有不同的版本和配置文件,不同的Adreno GPU可能支持不同的OpenCL版本,如下图所示:<br /> Adreno GPUs with OpenCL support<br /><img alt="在这里插入图片描述" class="b-lazy" data-src="https://img-blog.csdnimg.cn/2019091809191850.png" data-original="https://img-blog.csdnimg.cn/2019091809191850.png" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /><br /> 除了OpenCL版本和配置文件的不同之外,Adreno GPU还具有其他不同的属性,例如支持的扩展名和图像对象的最大尺寸等。通过调用OpenCL API函数clGetDeviceinfo,可以获得详细信息的完整列表。</p> <p>2、面向OpenCL的Adreno A5x图形处理器的高层体系结构:<br /><img alt="在这里插入图片描述" class="b-lazy" data-src="https://img-blog.csdnimg.cn/20190918091948995.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODQ5ODk0Mg==,size_16,color_FFFFFF,t_70" data-original="https://img-blog.csdnimg.cn/20190918091948995.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zODQ5ODk0Mg==,size_16,color_FFFFFF,t_70" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" /><br /> Adreno GPU支持许多图形和计算API,包括OpenGL ES、OpenCL、DirectX和Vulkan等。上图展示了OpenCL的Adreno A5X硬件体系结构的高级视图,其中跳过了与图形相关的硬件模块。A5x与其他Adreno-GPU有许多差异,而OpenCL的差异相对较小。</p> <p>3、在Adreno GPU中,最小的执行单元称为光纤。一根光纤对应于OpenCL中的一个工作项。一组始终在锁定步骤中执行的光纤称为波。SP一次可以容纳多个活动波。每一波通常都能独立向前推进,而不管另一波的状态如何。<br /> 延迟隐藏是gpu高效并行处理的一个最强大的特性,它使gpu能够实现高吞吐量。下面是一个例子:</p> <ol><li>SP开始执行第一波。</li> <li>在几个ALU指令之后,此波需要来自外部存储器(可能是全局/本地/专用存储器)的额外数据才能继续,这是不可用的。</li> <li>SP发送此波的数据获取请求。</li> <li>SP将执行切换到准备执行的第二波。</li> <li>SP继续执行第二波,直至外部依赖性尚未就绪。</li> <li>如果第1波的数据可用,SP可以切换到第3波,或者切换回第1波。<br /> 这样一来,SP大部分时间都很忙,工作起来就像“全职”一样,因为延迟或依赖关系可以很好地隐藏起来。</li> </ol><p>4、典型的OpenCL内核启动多个工作组。在Adreno GPU中,每个工作组被分配给一个SP,每个SP通常一次处理一个工作组。其余的工作组(如果有的话)在GPU中排队等待执行。<br /> 联合访问是OpenCL和GPU并行计算的重要概念。基本上是指底层硬件可以将多个工作项的数据加载/存储请求合并为一个请求,从而提高数据加载/存储效率的情况。如果没有联合访问支持,硬件必须对每个单独的请求执行加载/存储操作,从而导致性能低下。</p> <p><strong>三、总结</strong></p> <p>本篇文章主要介绍了OpenCL在Snapdragon上进行应用程序开发时的部分内容,大家有兴趣的可以相互探讨交流。</p> </div><div class="alert alert-warning" role="alert"><p>来源:<code>https://blog.csdn.net/weixin_38498942/article/details/100972052</code></p></div></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field--label">标签</div> <div class="field--items"> <div class="field--item"><a href="/tag/opencl" hreflang="zh-hans">opencl</a></div> <div class="field--item"><a href="/tag/yigoujisuan" hreflang="zh-hans">异构计算</a></div> <div class="field--item"><a href="/tag/adreno" hreflang="zh-hans">adreno</a></div> <div class="field--item"><a href="/tag/kuapingtai" hreflang="zh-hans">跨平台</a></div> </div> </div> Fri, 29 Nov 2019 15:48:59 +0000 耗尽温柔 706143 at https://www.e-learn.cn