@山水之道第五境——精灵的天地大阵
前言
** 正如OSI七层与TCP/IP五层网络架构一样,https://www.cnblogs.com/dadadechengzi/p/7999371.html 程序世界也有五层,前面已经讲述了硬件结构,nm级集成电路——芯片硬件到软件的嵌入式,不同软件开发平台的编程语言。 本节介绍精灵世界的天地大阵——算法一、算法是什么?
算法这东西庞大而复杂,在论文数据库搜索算法两个字,可以出现各行各业的各种算法,尤其时一些信息检索算法,加密算法,用户行为推荐算法,外卖算法,打车算法,渗透到人类生活的一言一行,就我个人而言,我主要做的是**图像处理**算法。本科时期做了差不多一年的医学图像,而后毕业论文和毕业实习也都做的医学图像,而后又做了很长一段时间的CMOS镜头WIFI图传,长期以来耳濡目染有些浅薄的认识。二、GPU与图像处理
1.GPU
图像处理主要包括图像压缩、图像滤波、图像采样、图像分割和图像分析。目前在众多实际应有领域如气象、地质检测、生物医学、人工智能、航空航天等领域都有重要应有,随着这些领域图像处理规模的不断扩大以及对实时性能要求的不断提高,如何提高图像处理算法的性能已经成为当前的研究热点 。
对于图像的在生物医学等邻域实时成像的需求,以及游戏,高清视频播放时,对于高清图像的快速处理及呈现的迫切需求,快速的处理大规模图像数据成为需要迫切解决的问题。
完整的图像处理大致包括:图像信息的获取、存储、传送、处理、输出和显示 。由于图像在生成和传送过程中不可避免的会产生各种噪声,为了使图像具有更高的清晰度,上下采样以及滤波、卷积等图像处理过程必不可少。图像处理算法的执行速率与图像尺寸直接相关,随着图像尺寸的不断增大,算法的运行时间已经远远不能达到人们对于实时处理图像的需求。关于图像处理算法本身的改进,已经没有太大上升空间,大尺寸图像大量的像素点意味着不可避免的大量重复运算,这是传统 CPU 所无法避免和解决的问题。快速处理高分辨率,同时满足海量基础数据和实效性的要求,需要计算机达到每秒亿万次以上的计算能力 。GPU 是能解决这一问题的唯一有效途径。**
由于材料、制造工艺、功耗及散热的限制,仅仅依靠提升时钟频率来提高处理器性能已经变得越来越困难。芯片厂商开始在单块芯片上集成更多的处理器核心,将处理器体系结构的发展推向了多核和众核时代。众核处理器凭借其强大的并行处理能力和更高的存储器带宽受到了越来越多厂家和应用开发人员的青睐。主流芯片厂商相继推出其众核架构处理器(如:NVIDIA 的 Fermi [3] 和Kepler [4] 架构 GPU、AMD 的 Cypress、Cayman 和 GNC [5] 架构 GPU 以及 Intel的 MIC [6] 架构)而成为应用最为普及众核架构处理器。如果过去摩尔定律集中体现在 CPU 上,那么未来摩尔定律将会在 GPU 上继续辉煌。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.GPU开发
随着 GPU(Graphics Processing Unit, GPU)计算能力的不断提高和可编程性的不断增强,越来越多的开发人员使用 GPU 作为性能加速器,以提高程序性能。GPU 上基本图像处理算法性能优化关键技术研究但是,如果 GPU 编程存在“编程难,优化更难”的问题:首先,如果 GPU 程序没有进行充分优化,其性能甚至反而不及 CPU,因为 GPU 程序的优化工作已经从硬件设计者转移到应用开发人员手中。然后, GPU 程序的性能优化是一个非常困难的过程,其实质是实现算法特性向底层硬件特征的高效映射。这个过程不仅需要程序员对 GPU 底层硬件有着清晰的了解,而且需要程序员对算法有着深入认知,这就对程序员提出了更高的要求data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
而我后续也将致力于从事GPU为核心的图像处理研究。(以往的研究方向主要包括操作系统,WIFI蓝牙,图像处理)