比特派钱包官网下载app正版|gup

作者: 比特派钱包官网下载app正版
2024-03-07 19:04:34

CPU和GPU到底有什么区别? - 知乎

CPU和GPU到底有什么区别? - 知乎首发于牛排研究所切换模式写文章登录/注册CPU和GPU到底有什么区别?牛排​电子科技大学 工学硕士来喽,一直也对这个问题有点疑惑自我强劲总结,分为以下几个部分吧1、CPU和GPU的内部构成和原理2、GPU和CPU的特点分别是什么?3、GPU和CPU的适用场景是什么?1、CPU和GPU的内部构成区别CPU和GPU的不同架构如上是CPU和GPU的内部构成,可以看出是由不同的架构所组成————————————————————CPU:叫做中央处理器(central processing unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。[1]可以形象的理解为有25%的ALU(运算单元)、有25%的Control(控制单元)、50%的Cache(缓存单元)因为CPU涉及到通用计算,复杂度较高,——总结成少量的复杂计算需要少量的运算单元,强大的逻辑运算能力,可以理解为4个专家,既可以做奥数题,也可以做加减法需要足够的控制单元实现复杂的数据控制和数据转发需要足够的缓存单元去存放一些已经计算完成的结果,或者是后面马上要用到的数据————————————————————GPU:叫做图形处理器。图形处理器(英语:Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。[2]可以形象的理解为90%的ALU(运算单元),5%的Control(控制单元)、5%的Cache(缓存单元)GPU的设计原理——总结为大量的简单运算大量的运算单元:负责简单粗暴的计算,不擅长奥数题,但小学题他会少量的控制单元和缓存单元:主要是负责合并和转发数据,对这两块的需求较小,所以占据GPU较小的空间————————————————————2、GPU和CPU的特点分别是什么?2.1、计算量比较CPU:计算量小,原理:只有4个运算单元GPU:计算量大,原理:有1000个运算单元2.2、计算复杂度比较:CPU:可计算复杂的运算,比如积分微分,4个运算单元都属于专家级别GPU:只可以计算简单的1+1算术题,不能计算复杂的微分积分,1000个运算单元属于小学生水平。2.2、对于单个积分微分的计算速度比较CPU:较快。原理:单线程计算(比如机器人运动控制),单个芯片性能强劲,计算能力强,能计算出来GPU:较慢,甚至可能计算不了;原理:单个芯片性能弱,计算能力弱,可能算不出来,或速度很慢2.3、对于多个1+1算术题的计算速度比较CPU:速度较慢。因为计算原理是:先算第1题, 再算第2题,总时间为【T1+T2+T3>>>+T1000(也就是1000个算术题消耗时间的累加])】GPU:速度很快。因为计算原理是:可同时计算1000道算术题,总时间为【max(T1,T2,T3...T1000)(也就是1000个算术题消耗时间中的最大值)】2.4、形象比喻GPU:计算量大,但没什么技术含量,而且要重复很多很多次。就像你有个工作需要算几亿次一百以内加减乘除一样,最好的办法就是雇上几十个小学生一起算,一人算一部分,反正这些计算也没什么技术含量,纯粹体力活而已。CPU:像老教授,积分微分都会算,就是工资高,一个老教授资顶二十个小学生,你要是富士康你雇哪个?GPU就是这样,用很多简单的计算单元去完成大量的计算任务,纯粹的人海战术。CPU和GPU的区别————————————————————3、适用场景CPU:适合需要前后计算步骤严密关联的计算场景。这些任务涉及到“流”的问题,必须先计算完第一步,再去计算第二步;比如你去相亲,双方看着顺眼才能继续发展。总不能你这边还没见面呢,那边找人把证都给领了。这种比较复杂的问题都是CPU来做的,生活中大部分用的都是CPU,例如武器装备运动控制、个人电脑使用等GPU:适合前后计算步骤无依赖性,相互独立的计算场景。很多涉及到大量计算的问题基本都有这种特性,比如你说的破解密码,挖矿和很多图形学的计算。这些计算可以分解为多个相同的简单小任务,每个任务就可以分给一个小学生去做。[3]4、视频案例B站和youtube网站都有的一个视频,搬运过来,加以解释。视频中分别画了两幅图图A是一张笑脸,是由一个个彩蛋先后发射,连接在一起,给人呈现以笑脸的图像,花费时间较长,比喻的对象是CPU的计算原理,一步步迭代计算图B是一张蒙娜丽莎的画像,是由大量彩蛋同时发射,拼凑成一幅完整的画像,花费时间是在一瞬间,比如的对象是GPU的计算原理,大量高并行计算PS:触类旁通☺:如果你购买电脑,你对电脑的需求是追求优秀的游戏图像高画质,建议就是选择GPU(又叫图像处理器或者显卡)牛逼的,这样会让你的游戏体验大增,因为你电脑中所有色彩像素点的渲染效果需要GPU去做大量并行计算,原理同上,解释了有所感悟?请在左下角点“▲赞同”—————————————————在牛鸽的小站,和我一起探索这世界的神秘 关注大数据解决方案/知识分享达人? 关注我!参考^CPU百度百科 https://baike.baidu.com/item/%E4%B8%AD%E5%A4%AE%E5%A4%84%E7%90%86%E5%99%A8/284033?fromtitle=CPU&fromid=120556^gpu百度百科 https://baike.baidu.com/item/%E5%9B%BE%E5%BD%A2%E5%A4%84%E7%90%86%E5%99%A8/8694767?fromtitle=gpu&fromid=105524&fr=aladdin^CSDN https://blog.csdn.net/qianyayun19921028/article/details/98089457编辑于 2020-07-05 18:05中央处理器 (CPU)图形处理器(GPU)运算​赞同 295​​6 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录牛排研究所一名追求工作的小镇青年的所

上证指数(000001)_股票行情_走势图—东方财富网

(000001)_股票行情_走势图—东方财富网财经|焦点|股票|新股|期指|期权|行情|数据|全球|美股|港股|期货|外汇|黄金|银行|基金|理财|保险|债券|视频|股吧|基金吧|博客|财富号|搜索全球财经快讯数据中心手机站客户端Choice数据手机买基金 牛市赚不停>行情中心指数|期指|期权|个股|板块|排行|新股|基金|港股|美股|期货|外汇|黄金|自选股|自选基金全球股市上证:- - - - (涨:- 平:- 跌:-)深证:- - - - (涨:- 平:- 跌:-)数据中心新股申购新股日历资金流向AH股比价主力排名板块资金个股研报行业研报盈利预测千股千评年报季报龙虎榜单限售解禁大宗交易期指持仓融资融券沪深港通沪股通-资金流入-深股通-资金流入-港股通(沪)-资金流入-港股通(深)-资金流入-最近访问:-​------今开: -最高: -涨跌幅: -换手: -成交量: -昨收: -最低: -涨跌额: -振幅: -成交额: -多空调查看涨 0看跌 0盘整 0投票查看股市备忘两市公告两市停牌报刊头条晚间快讯盈利预测股票账户股东人数券商晨会基金持仓社保持仓两市资金流入流出图更多我的自选更多名称最新价涨跌幅------------------点击进入我的自选股>>>重要指数更多名称最新价涨跌幅---------------股指期货更多名称最新价涨跌幅------------------行业涨幅榜行业跌幅榜名称涨跌幅领涨股---------------概念涨幅榜概念跌幅榜名称涨跌幅领涨股---------------全球直播上证指数吧上证指数资讯多空每天查查看最新全屏日K周K月K5分钟15分钟30分钟60分钟拉长K线缩短K线全屏最新基金重仓股龙虎榜数据全览高管增减持股明细万2.5极速开户主力异动提前看个股资金流向股市直播大字+ 60秒后刷新 刷新更多>>沪市资金流分笔主力流入-主力流出-主力净流入-(元)流入流出超大单--大单--中单--小单----------净超大净大单净中单净小单最新:-开盘:-最高:-最低:-涨幅:-涨跌:-总量:-总额:-换手:-流值:-内盘:-外盘:-振幅:-涨家数:-跌家数:-平家数:-阶段涨幅5日:-20日:-60日:-今年:-上证A股涨幅排行更多名称最新价涨跌幅---------------------------------------------行业资金流排行更多名称净流入流入最大股---------------证券聚焦更多数据加载中...大盘分析名博论市更多数据加载中...概念资金流排行更多名称净流入流入最大股---------------公司快讯更多数据加载中...研究报告更多机构评级研报暂无数据上证指数吧 股吧首页 | 热门个股吧 | 热门主题吧 | 更多调查多空持仓机构上涨盘整下跌上涨盘整下跌投票查看热门股吧名称最新价涨跌幅------------------------------市场总貌更新时间:-类别成交量(万股)成交金额(亿元)总市值(亿元)流通市值(亿元)上市公司(家)平均市盈率沪市------深市------创业板------领涨板块更多行业资金流向更多郑重声明:本网站所刊载的所有资料及图表仅供参考使用。投资者依据本网站提供的信息、资料及图表进行金融、证券等投资所造成的盈亏与本网站无关。本网站如因系统维护或升级而需暂停服务,或因线路及超出本公司控制范围的硬件故障或其它不可抗力而导致暂停服务,于暂停服务期间造成的一切不便与损失,本网站不负任何责任。

东方财富

扫一扫下载APP

东方财富产品

东方财富免费版

东方财富Level-2

东方财富策略版

Choice金融终端

浪客 - 财经视频

证券交易

东方财富证券开户

东方财富在线交易

东方财富证券交易

关注东方财富

东方财富网微博

东方财富网微信

意见与建议

天天基金

扫一扫下载APP

基金交易

基金开户

基金交易

活期宝

基金产品

稳健理财

关注天天基金

天天基金网微博

天天基金网微信

东方财富期货

扫一扫下载APP

期货交易

期货手机开户

期货电脑开户

期货官方网站

信息网络传播视听节目许可证:0908328号 经营证券期货业务许可证编号:913101046312860336 违法和不良信息举报:021-34289898 举报邮箱:jubao@eastmoney.com

沪ICP证:沪B2-20070217 网站备案号:沪ICP备05006054号-11 沪公网安备 31010402000120号 版权所有:东方财富网 意见与建议:4000300059/952500

关于我们

可持续发展

广告服务

联系我们

诚聘英才

法律声明

隐私保护

征稿启事

友情链接

Linux gup_linux gup.c是干啥的-CSDN博客

>

Linux gup_linux gup.c是干啥的-CSDN博客

Linux gup

最新推荐文章于 2022-11-16 10:31:15 发布

不想做火影的海贼王

最新推荐文章于 2022-11-16 10:31:15 发布

阅读量724

收藏

2

点赞数

分类专栏:

linux驱动

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/huifeidedabian/article/details/117221026

版权

linux驱动

专栏收录该内容

23 篇文章

1 订阅

订阅专栏

/**

* __get_user_pages() - pin user pages in memory

* @tsk: task_struct of target task

* @mm: mm_struct of target mm

* @start: starting user address

* @nr_pages: number of pages from start to pin

* @gup_flags: flags modifying pin behaviour

* @pages: array that receives pointers to the pages pinned.

* Should be at least nr_pages long. Or NULL, if caller

* only intends to ensure the pages are faulted in.

* @vmas: array of pointers to vmas corresponding to each page.

* Or NULL if the caller does not require them.

* @nonblocking: whether waiting for disk IO or mmap_sem contention

*

* Returns number of pages pinned. This may be fewer than the number

* requested. If nr_pages is 0 or negative, returns 0. If no pages

* were pinned, returns -errno. Each page returned must be released

* with a put_page() call when it is finished with. vmas will only

* remain valid while mmap_sem is held.

*

* Must be called with mmap_sem held. It may be released. See below.

*

* __get_user_pages walks a process's page tables and takes a reference to

* each struct page that each user address corresponds to at a given

* instant. That is, it takes the page that would be accessed if a user

* thread accesses the given user virtual address at that instant.

*

* This does not guarantee that the page exists in the user mappings when

* __get_user_pages returns, and there may even be a completely different

* page there in some cases (eg. if mmapped pagecache has been invalidated

* and subsequently re faulted). However it does guarantee that the page

* won't be freed completely. And mostly callers simply care that the page

* contains data that was valid *at some point in time*. Typically, an IO

* or similar operation cannot guarantee anything stronger anyway because

* locks can't be held over the syscall boundary.

*

* If @gup_flags & FOLL_WRITE == 0, the page must not be written to. If

* the page is written to, set_page_dirty (or set_page_dirty_lock, as

* appropriate) must be called after the page is finished with, and

* before put_page is called.

*

* If @nonblocking != NULL, __get_user_pages will not wait for disk IO

* or mmap_sem contention, and if waiting is needed to pin all pages,

* *@nonblocking will be set to 0. Further, if @gup_flags does not

* include FOLL_NOWAIT, the mmap_sem will be released via up_read() in

* this case.

*

* A caller using such a combination of @nonblocking and @gup_flags

* must therefore hold the mmap_sem for reading only, and recognize

* when it's been released. Otherwise, it must be held for either

* reading or writing and will not be released.

*

* In most cases, get_user_pages or get_user_pages_fast should be used

* instead of __get_user_pages. __get_user_pages should be used only if

* you need some special @gup_flags.

*/

static long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,

unsigned long start, unsigned long nr_pages,

unsigned int gup_flags, struct page **pages,

struct vm_area_struct **vmas, int *nonblocking)

{

long i = 0;

unsigned int page_mask;

struct vm_area_struct *vma = NULL;

if (!nr_pages)

return 0;

VM_BUG_ON(!!pages != !!(gup_flags & FOLL_GET));

/*

* If FOLL_FORCE is set then do not force a full fault as the hinting

* fault information is unrelated to the reference behaviour of a task

* using the address space

*/

if (!(gup_flags & FOLL_FORCE))

gup_flags |= FOLL_NUMA;

do {

struct page *page;

unsigned int foll_flags = gup_flags;

unsigned int page_increm;

/* first iteration or cross vma bound */

if (!vma || start >= vma->vm_end) {

vma = find_extend_vma(mm, start);

if (!vma && in_gate_area(mm, start)) {

int ret;

ret = get_gate_page(mm, start & PAGE_MASK,

gup_flags, &vma,

pages ? &pages[i] : NULL);

if (ret)

return i ? : ret;

page_mask = 0;

goto next_page;

}

if (!vma || check_vma_flags(vma, gup_flags))

return i ? : -EFAULT;

if (is_vm_hugetlb_page(vma)) {

i = follow_hugetlb_page(mm, vma, pages, vmas,

&start, &nr_pages, i,

gup_flags);

continue;

}

}

retry:

/*

* If we have a pending SIGKILL, don't keep faulting pages and

* potentially allocating memory.

*/

if (unlikely(fatal_signal_pending(current)))

return i ? i : -ERESTARTSYS;

cond_resched();

page = follow_page_mask(vma, start, foll_flags, &page_mask);

if (!page) {

int ret;

ret = faultin_page(tsk, vma, start, &foll_flags,

nonblocking);

switch (ret) {

case 0:

goto retry;

case -EFAULT:

case -ENOMEM:

case -EHWPOISON:

return i ? i : ret;

case -EBUSY:

return i;

case -ENOENT:

goto next_page;

}

BUG();

} else if (PTR_ERR(page) == -EEXIST) {

/*

* Proper page table entry exists, but no corresponding

* struct page.

*/

goto next_page;

} else if (IS_ERR(page)) {

return i ? i : PTR_ERR(page);

}

if (pages) {

pages[i] = page;

flush_anon_page(vma, page, start);

flush_dcache_page(page);

page_mask = 0;

}

next_page:

if (vmas) {

vmas[i] = vma;

page_mask = 0;

}

page_increm = 1 + (~(start >> PAGE_SHIFT) & page_mask);

if (page_increm > nr_pages)

page_increm = nr_pages;

i += page_increm;

start += page_increm * PAGE_SIZE;

nr_pages -= page_increm;

} while (nr_pages);

return i;

}

__get_user_pages() - pin user pages in memory 表明 使用该函数可以锁住物理页,防止其被swap出去或者被migrate 。

static inline void get_page(struct page *page)

{

page = compound_head(page);

/*

* Getting a normal page or the head of a compound page

* requires to already have an elevated page->_refcount.

*/

VM_BUG_ON_PAGE(page_ref_count(page) <= 0, page);

page_ref_inc(page);

if (unlikely(is_zone_device_page(page)))

get_zone_device_page(page);

}

参考:https://zhuanlan.zhihu.com/p/28742793 Linux内核提供的pin机制是gup(参考mm/gup.c),这是get_user_pages系列函数的缩写。它的作用是把某个进程的虚拟地址进行预缺页,把物理页表分配出来,然后做get_page(),增加这个page的使用计数,这样这个page就不会被释放,设备就可以一直访问这个物理页了。 以 v4l2 使用说明

/**

* vb2_create_framevec() - map virtual addresses to pfns

* @start: Virtual user address where we start mapping

* @length: Length of a range to map

* @write: Should we map for writing into the area

*

* This function allocates and fills in a vector with pfns corresponding to

* virtual address range passed in arguments. If pfns have corresponding pages,

* page references are also grabbed to pin pages in memory. The function

* returns pointer to the vector on success and error pointer in case of

* failure. Returned vector needs to be freed via vb2_destroy_pfnvec().

*/

struct frame_vector *vb2_create_framevec(unsigned long start,

unsigned long length,

bool write)

{

int ret;

unsigned long first, last;

unsigned long nr;

struct frame_vector *vec;

unsigned int flags = FOLL_FORCE;

if (write)

flags |= FOLL_WRITE;

first = start >> PAGE_SHIFT;

last = (start + length - 1) >> PAGE_SHIFT;

nr = last - first + 1;

vec = frame_vector_create(nr);

if (!vec)

return ERR_PTR(-ENOMEM);

ret = get_vaddr_frames(start & PAGE_MASK, nr, flags, vec);

if (ret < 0)

goto out_destroy;

/* We accept only complete set of PFNs */

if (ret != nr) {

ret = -EFAULT;

goto out_release;

}

return vec;

out_release:

put_vaddr_frames(vec);

out_destroy:

frame_vector_destroy(vec);

return ERR_PTR(ret);

}

EXPORT_SYMBOL(vb2_create_framevec);

/**

* get_vaddr_frames() - map virtual addresses to pfns

* @start: starting user address

* @nr_frames: number of pages / pfns from start to map

* @gup_flags: flags modifying lookup behaviour

* @vec: structure which receives pages / pfns of the addresses mapped.

* It should have space for at least nr_frames entries.

*

* This function maps virtual addresses from @start and fills @vec structure

* with page frame numbers or page pointers to corresponding pages (choice

* depends on the type of the vma underlying the virtual address). If @start

* belongs to a normal vma, the function grabs reference to each of the pages

* to pin them in memory. If @start belongs to VM_IO | VM_PFNMAP vma, we don't

* touch page structures and the caller must make sure pfns aren't reused for

* anything else while he is using them.

*

* The function returns number of pages mapped which may be less than

* @nr_frames. In particular we stop mapping if there are more vmas of

* different type underlying the specified range of virtual addresses.

* When the function isn't able to map a single page, it returns error.

*

* This function takes care of grabbing mmap_sem as necessary.

*/

int get_vaddr_frames(unsigned long start, unsigned int nr_frames,

unsigned int gup_flags, struct frame_vector *vec)

{

struct mm_struct *mm = current->mm;

struct vm_area_struct *vma;

int ret = 0;

int err;

int locked;

if (nr_frames == 0)

return 0;

if (WARN_ON_ONCE(nr_frames > vec->nr_allocated))

nr_frames = vec->nr_allocated;

down_read(&mm->mmap_sem);

locked = 1;

vma = find_vma_intersection(mm, start, start + 1);

if (!vma) {

ret = -EFAULT;

goto out;

}

/*

* While get_vaddr_frames() could be used for transient (kernel

* controlled lifetime) pinning of memory pages all current

* users establish long term (userspace controlled lifetime)

* page pinning. Treat get_vaddr_frames() like

* get_user_pages_longterm() and disallow it for filesystem-dax

* mappings.

*/

if (vma_is_fsdax(vma)) {

ret = -EOPNOTSUPP;

goto out;

}

if (!(vma->vm_flags & (VM_IO | VM_PFNMAP))) {

vec->got_ref = true;

vec->is_pfns = false;

ret = get_user_pages_locked(start, nr_frames,

gup_flags, (struct page **)(vec->ptrs), &locked);

goto out;

}

vec->got_ref = false;

vec->is_pfns = true;

do {

unsigned long *nums = frame_vector_pfns(vec);

while (ret < nr_frames && start + PAGE_SIZE <= vma->vm_end) {

err = follow_pfn(vma, start, &nums[ret]);

if (err) {

if (ret == 0)

ret = err;

goto out;

}

start += PAGE_SIZE;

ret++;

}

/*

* We stop if we have enough pages or if VMA doesn't completely

* cover the tail page.

*/

if (ret >= nr_frames || start < vma->vm_end)

break;

vma = find_vma_intersection(mm, start, start + 1);

} while (vma && vma->vm_flags & (VM_IO | VM_PFNMAP));

out:

if (locked)

up_read(&mm->mmap_sem);

if (!ret)

ret = -EFAULT;

if (ret > 0)

vec->nr_frames = ret;

return ret;

}

EXPORT_SYMBOL(get_vaddr_frames);

/*

* We can leverage the VM_FAULT_RETRY functionality in the page fault

* paths better by using either get_user_pages_locked() or

* get_user_pages_unlocked().

*

* get_user_pages_locked() is suitable to replace the form:

*

* down_read(&mm->mmap_sem);

* do_something()

* get_user_pages(tsk, mm, ..., pages, NULL);

* up_read(&mm->mmap_sem);

*

* to:

*

* int locked = 1;

* down_read(&mm->mmap_sem);

* do_something()

* get_user_pages_locked(tsk, mm, ..., pages, &locked);

* if (locked)

* up_read(&mm->mmap_sem);

*/

long get_user_pages_locked(unsigned long start, unsigned long nr_pages,

unsigned int gup_flags, struct page **pages,

int *locked)

{

return __get_user_pages_locked(current, current->mm, start, nr_pages,

pages, NULL, locked, true,

gup_flags | FOLL_TOUCH);

}

EXPORT_SYMBOL(get_user_pages_locked);

__get_user_pages_locked 会调用到 __get_user_pages,把V4L2使用的这些page在内核pin住。不会出现 migrate page,导致dma 出现buffer 异常。

优惠劵

不想做火影的海贼王

关注

关注

0

点赞

2

收藏

觉得还不错?

一键收藏

知道了

0

评论

Linux gup

/** * __get_user_pages() - pin user pages in memory * @tsk: task_struct of target task * @mm: mm_struct of target mm * @start: starting user address * @nr_pages: number of pages from start to pin * @gup_flags: flags modifying pin behaviour * @pages

复制链接

扫一扫

专栏目录

linux那些事之pin memory相关API

weixin_42730667的博客

12-22

2257

内核中为pin memory 用户空间申请物理内存除了get_user_pages() API函数之外,还有其他相关一系列函数,主要位于mm\gup.c 主要都是针对get_user_pages进行的扩展,以满足各种不同需求。

pin_user_pages

pin_user_pages()为用户空间锁定物理页,与get_user_pages函数基本相同,差别在于gup_flags标志位不同:

/**

* pin_user_pages() - pin user pages in memory for

Generalpurposegraphicsprocessorarchitectures_GUP_

10-02

General-purpose-graphics-processor-architectures

参与评论

您还未登录,请先

登录

后发表或查看评论

GUP加速matlab

07-30

一本使用GPU加速matlab程序的书,很全面

gup图像处理包

12-23

gup图像处理包,第三方包。可以研究学习。

GUP仿真应用

01-03

gpu是一种专门在个人电脑、工作站、游戏机和一些移动设备上图像运算工作的微处理器。用途是将计算机系统所需要的显示信息进行转换驱动,并向显示器提供行扫描信号,控制显示器的正确显示,是连接显示器和个人电脑主板的重要元件。gpu的主要供应厂商包括:英特尔、NVIDIA、AMD(ATI)、3dfx、Matrox、SiS和VIA等。

linux那些事之pin memory(get_user_pages())

weixin_42730667的博客

12-02

4497

pin memory

通常一个应用程序使用malloc或者mmap申请到的只是虚拟内存,只有在第一次访问该地址时触发page fault才为其申请物理内存称为按需分配内存。整个映射过程其实用户是无法感知,但是触发一次page fault非常耗时。有时应用程序为了优化性能,通常采用pin memory的形式即使用mmap/malloc时提前将虚拟内存与对应物理内存锁定,以提高性能,这也是很多程序常用优化方法。

pin memory好处还有另外一个优势就是可以防止内存被swap out置换到存储器中,如果在

get_user_pages — 获取用户区进程使用内存的某个页

gudujianjsk的专栏

07-31

2995

int get_user_pages (    struct task_struct * tsk,         /////     the task_struct to use for page fault accounting, or NULL if faults are not to be recorded.   一般选择current

     struct mm_struct * m

Linux2.6.29内核的get_user_pages的改进

Netfilter

02-09

5767

在最新的2.6.29内核中,对get_user_pages做了一个改善,主要就是颗粒问题,以前的实现中,在get_user_pages之后才可以处理诸如“本进程已经死亡”的信息,这样的话就做了很多无用功,这在古老的系统问题不大,但是现在都是大并发大负载的系统,任何处理都要很大的付出,因此在目前的情况下,必须改善一些情况。试想一种情况,如果一个进程p已经被oom_killer选中,oom_kille

Linux Kernel Get User Pages

alex_mianmian的博客

01-10

508

Question:

if I malloc a buffer in user space, but I don't read/write it. I just pass the virtual address of this buffer to driver by ioctl. In driver, I am trying to use get_user_pages() to get all the pages of this virtual address. Is there page mapping

get_user_pages和get_user_pages_fast的区别

kaka__55的博客

03-20

2690

最近工作中经常遇见get_user_pages和get_user_pages_fast,虽然知道他们都是用来pin住一个页的,但是依然没搞明白后者是如何实现fast的,两者的区别具体在哪。刚好利用周末时间研究一下。本文的分析基于linux 4.19.195.

先看看get_user_pages_fast函数的定义

/**

* get_user_pages_fast() - pin user pages in memory

* @start: starting user address

* @nr_pa

GUP加速的FDTD代码

11-13

基于GPU 加速的 FDTD 代码 希望对大家有帮助

前端面试题6

m0_67156178的博客

11-16

419

react,用于构建用户界面的JavaScript库,只提供了UI层面的解决方案,遵循组件设计模型,声明式编程范式和函数编程概念,以使前端应用更加高效,使用虚拟dom来有效的操作dom,遵循从高阶组件到低阶组件的单向数据流帮助我们将界面成了各个独立的小块,每一个块就是组件,这些组件之间可以组合、嵌套,构成整体页面react类组件使用一个名为 render() 的方法或者函数组件return,接收输入的数据并返回需要展示的内容。前端不仅仅局限于网页的制作,还有app,小程序,游戏等开发;

Linux——gcc & g++的使用和区别

0 error(s)

08-14

1961

gcc和g++

gcc和g++都是编译器。编译代码用的!

别看他俩长得差不多,但是他俩是不同的。

gcc和g++的区别

gcc和g++都来自一个妈:GUN 编译器集合

gcc是GCC中的GUN C Compiler(C 编译器)

g++是GCC中的GUN C++ Compiler(C++编译器)

误区一:gcc只能编译C代码,g++只能编译c++代码。

事实上,二者都可以编译c或cpp文件。

gcc和g++的主要区别

对于 .c和.cpp文件,gcc分别当做c和cpp文件编译(cpp的语法规则比c的更强一

一些可以参考的文档集合5

xuejianxinokok的专栏

05-24

1407

之前的文章集合:

一些可以参考文章集合1_xuejianxinokok的博客-CSDN博客

一些可以参考文章集合2_xuejianxinokok的博客-CSDN博客

一些可以参考的文档集合3_xuejianxinokok的博客-CSDN博客

一些可以参考的文档集合4_xuejianxinokok的博客-CSDN博客

20220524

本文主要描述了kafka3的安装配置包含不使用zookeeper的情况。还讨论了raft 协议

定义 Server 端代码实现:

publicclass...

windows使用nvidia-smi查看gpu信息

lsh呵呵

03-26

2万+

需要在path添加 如下 路径才可以使用nvidia-smi命令等。

C:\Program Files\NVIDIA Corporation\NVSMI

linux那些事之gup_flags

weixin_42730667的博客

12-04

1303

linux gup子系统在处理各种pin memory中,为了方便处理各种使用场景同时减少代码冗余,使用了gup_flags 标识位用于标记处理内存时各种场景,也是常见的软件设计方法,但是flag引入增加对代码的维护难度,尤其时阅读代码时经常被各种gup_flags(在include\linux\mm.h文件中定义)搞蒙,因此有必要对gup flags做个说明:

名称

说明

FOLL_WRITE

0x01

用于检查对应的page table entry是否拥有写权限

F

linux怎么查看gpu信息,如何在linux下查看gpu信息

weixin_31684041的博客

05-08

4111

~$ lspci | grep -i vga01:00.0 VGA compatible controller: NVIDIA Corporation GF119 [GeForce GT 610] (rev a1)如果你想看gpu的详细信息,使用~$ lspci -v -s 01:00.0,则:01:00.0 VGA compatible controller: NVIDIA Corporatio...

Linux下监视NVIDIA的GPU使用情况

热门推荐

jasonzzj的博客

09-24

18万+

在使用TensorFlow跑深度学习的时候,经常出现显存不足的情况,所以我们希望能够随时查看GPU时使用率。如果你是Nvidia的GPU,那么在命令行下,只需要一行命令就可以实现。1. 显示当前GPU使用情况Nvidia自带了一个nvidia-smi的命令行工具,会显示显存使用情况:$ nvidia-smi输出:

2. 周期性输出GPU使用情况但是有时我们希望不仅知道那一固定时刻的GPU使用情况,

AddressMapping -- 非常实用的地址匹配工具

jcx5083761的专栏

02-08

7026

1、上面是地址匹配工具的主界面:左边是连接数据库的配置信息,地址数据是从数据库的具体表中获得的。

2、此工具主要是给现有的地址数据添加上经纬度的信息,并且显示匹配的结果,便于追溯。

3、应用的匹配平台是BingMap和GoogleMap,由于GoogleMap有每日2500条记录的限制,所以GoogleMap适合增量匹配,用Windows Service方式实现,之前也尝试过GoogleMap

opencv GUP

最新发布

10-20

OpenCV是一个开源的计算机视觉库,它提供了许多用于图像处理和计算机视觉的函数和工具。其中,OpenCV GPU模块是OpenCV的一个子模块,它提供了一些用于GPU加速的函数和工具。在OpenCV GPU模块中,GpuMat是一个类,它代表了一个在GPU上的图像或矩阵。通过使用GpuMat,我们可以在GPU上执行一些图像处理和计算机视觉任务,从而加速程序的运行速度。在引用中的示例中,使用了GpuMat来加速图像处理任务。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

不想做火影的海贼王

博客等级

码龄9年

55

原创

21

点赞

106

收藏

21

粉丝

关注

私信

热门文章

MTK camera plugin 算法中 mutex 锁导致camerahalserver AEE_AED

6058

C++ 以string形式 打印 十六进制 代码示例

5847

linux 下 shell 脚本 使用adb 命令

5439

dma_map_single dma_map_sg理解

4680

Android Camera HAL3 Vendor Tag 定制私有化

4261

分类专栏

linux 内存管理

3篇

shell脚本

2篇

qcom camera

5篇

linux驱动

23篇

C (Programming) Language

6篇

C++

7篇

YUV

工具学习

3篇

GPU

1篇

apk

android p camera

5篇

杂项记录

3篇

最新评论

linux kernel container_of 的使用,结构体成员数组的形式

王林森:

mark,two win.

Linux 常用调试命令汇总

原味吐司:

你的文风和我的一个朋友很像

camera daemon进程

Wind:

感谢楼主辛苦总结,学习了,强

Fatal signal 11 (SIGSEGV), code 1, fault addr 0xf4f17000 in tid 5091(CAM_MctBus) 解决方法总结

不想做火影的海贼王

回复

shlaing310:

后来qcom给了patch,不过不做qcom了,不太记得了

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

DS5使用--add-symbol-file

VI 使用技巧

Android/Linux内存常用命令

2022年2篇

2021年16篇

2020年16篇

2019年11篇

2018年10篇

2017年2篇

目录

目录

分类专栏

linux 内存管理

3篇

shell脚本

2篇

qcom camera

5篇

linux驱动

23篇

C (Programming) Language

6篇

C++

7篇

YUV

工具学习

3篇

GPU

1篇

apk

android p camera

5篇

杂项记录

3篇

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

GUP_百度百科

百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心收藏查看我的收藏0有用+10GUP播报讨论上传视频良好的使用规范本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。GUP,是英文Good Using Practice的缩写,直译为良好的使用规范,即《药品使用质量管理规范》。它是指医疗机构在药品使用过程中,针对药事管理机构设置、人员素质制度职责、设施设备,药品的购进、验收、储存、养护和调剂使用,药品不良反应监测、信息反馈、合理用药等环节而制定的一整套管理标准和规程。制定GUP有助于完善药品质量监督管理体系,解决我国部分药品监管法规滞后的问题,不断提高医疗机构的综合素质,推动我国药品监管尽快与国际接轨。中文名《药品使用质量管理规范》外文名GUP全    称Good Using Practice意    义推动我国药品监管尽快与国际接轨目录1制定实施GUP的作用2实施GUP手段3期待中GUP制定实施GUP的作用播报编辑制定实施GUP的作用主要有以下几个方面。一是促进医疗机构药品使用管理的规范。GUP具有专业性、专属性、针对性、科学性、可行性和有效性等特点,针对药品使用的全过程,如药事管理及组织机构、药品供应、药品临床应用、调剂、临床药学、药学人员管理等实施全方位的质量管理,从而形成一个完善的质量管理体系。通过制定实施GUP,使医疗机构的药品使用与管理提高到一个新水平;二是确保临床用药安全有效。医疗机构制定实施GUP,必须建立质量保证体系,提高药学人员素质;改善基础设施条件,控制可能影响药品质量的各种因素,减少或杜绝质量隐患,加之GUP与生产环节的GMP和经营环节的GSP相配套,从而有效地保证临床用药的安全、有效、稳定和合理;三是为临床药学工作者创造条件。目前我国临床药学工作仍然处于初级阶段,通过制定实施GUP,可以法规的形式对医疗机构临床药学工作提出具体要求,规定医院临床药学的机构设置,实行临床药师制度,了解临床用药情况,对治疗药物进行监测,设计个体化给药方案,建立药学信息机构,采取多种形式宣传合理用药等;四是促进药品调剂和仓储设施与设备的改进。GUP对医疗机构药品库房、中西药调剂室的面积、温度与湿度调节以及五防设备、特殊药品的储存设备等均有明确规范,这有助于促进医疗机构药房(库)硬件设施的改进,从而达到药品储存,调剂技术的要求。实施GUP手段播报编辑推动实施GUP,医疗机构需做好的几个准备工作。(一)领导重视是前提。院长是医院的最高管理者,也应是医院药事管理委员会的主任。实施GUP是一项系统工程,需要医院领导合理调配人、财、物资源,充分调动各环节人员的积极性,因此,领导在实施GUP的准备工作中发挥着关键与核心作用。(二)全员参与是保证。为充分调动医疗机构全员的积极性,树立对GUP的正确认识,一要明确质量职责和质量工作程序,二要加强岗位培训和继续教育,定期对全体人员进行法律知识、专业技能、质量意识及职业道德方面的教育与培训。(三)管理技术是手段。医疗机构准确快速掌握药品质量信息,为药品购进、验收、储存、养护、调剂使用和合理用药提供全面的信息,实现医疗机构内部信息共享,从而使药品管理各项工作井然有序,保证所使用药品符合质量标准。(四)质量体系是核心。建立药品质量体系是实施GUP的核心,医疗机构药房一切质量管理工作应以此为依据展开,在药品购进、储存、使用、临床药学过程管理等方面都要按GUP要求有效运行。此外,医疗机构还应投入一定数量的奖金,以改善药品调剂、仓储环 [1]境和检测手段。期待中GUP播报编辑一、由GSP“抛砖引玉”而来经营环节的GSP认证对药品经营企业在药品的购进、储运和销售等环节实行质量管理,带来了新的经营理念,带来了合理的经营模式,带来了新的科技设备,全面提高了药品经营企业的素质,有力地保证了药品质量。在使用环节,尽管GUP的制定早就被社会所关注,有的地方试点性地出台了一些规定。但无论是认证,还是发放许可证,不是超出了行政许可范围,就是仅仅轮廓、框架性结构,把相应的条款简单罗列,没有具体的操作标准,远未能全面体现质量管理的内涵。同时,由于各地发展不平衡的差异等因素,有的还受到了区域的限制,具有推广实施的局限性。如果有一个像规范药店管理的GSP一样适用于医疗机构药事的管理标准,那就既能规范医疗机构药事的管理,又能更有效的提高监管部门对医疗机构药事的监督力度。二、与GSP“形似而神不似”GSP是一套对药品经营企业行之有效的基本准则。当然,GUP不能照抄照搬GSP,否则,就张冠李戴了。但GSP在药品经营企业取得的成功经验却值得借鉴。同GSP一样,建立质量体系是实施GUP的核心,医疗机构药事的一切质量管理工作应以此为中心展开。为确保这个中心,我们可在组织结构、职责制度、过程管理和设施设备等方面建立起与GSP“形似而神不似”的质量体系,制定相关的现场检查操作办法。同时,医疗机构作为当前用药的前沿,与药品经营企业相比,在药品质量事故的处理和报告、药品不良反应报告、处方药及抗菌药品管理制度、卫生管理等方面又有着自身的特殊之处,要建立一套有科学性、针对性,专属性、又有可行性的技术规范。需指出的是,如同实施GSP认证一样,对药品批发企业,零售企业,对城区药品经营企业、县以下药品零售企业所掌握的尺度有所差异。医疗机构由于层级差异和地区发展的不平衡,也同样存在类似的现状,如“三甲医院”与村级医疗机构的软硬件建设就有天壤之别。要结合实际,区别对待,设置合理缺项。三、路漫漫兮……积极肯定中存在着实际实施的诸多困难。GUP的实施不会是一帆风顺,要达到预期的目的还有很长的路要走,加强卫生、药监等部门之间的协调非常重要。由于医疗机构等的药事管理存在职能交叉和工作重心的不同,某些制定的药事规范有重医轻药之嫌。而药监部门主管用药安全,却对医疗机构药学的指导有些隔靴搔痒之感,医药分家而治的议论也无疾而终。所以在目前条件下,加强医疗机构主管部门和药监部门的合作十分必要。GUP理应是卫生、药监等职能部门众星拱月,联手倾情打造的“娇子”。我们有理由相信,届时,千呼万唤始出来的GUP,待到我们一睹芳容时,定会艳惊四座!新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000

CPU 和 GPU 的区别是什么? - 知乎

CPU 和 GPU 的区别是什么? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册中央处理器 (CPU)图形处理器(GPU)CPU 和 GPU 的区别是什么?关注者3,652被浏览4,478,097关注问题​写回答​邀请回答​好问题 55​2 条评论​分享​116 个回答默认排序知乎用户​本回答内容为转载。原作者:Magnum Programm Life原出处:博客园原文链接: Magnum Programm Life著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。以下为正式内容=============================================CPU和GPU之所以大不相同,是由于其设计目标的不同,它们分别针对了两种不同的应用场景。CPU需要很强的通用性来处理各种不同的数据类型,同时又要逻辑判断又会引入大量的分支跳转和中断的处理。这些都使得CPU的内部结构异常复杂。而GPU面对的则是类型高度统一的、相互无依赖的大规模数据和不需要被打断的纯净的计算环境。  于是CPU和GPU就呈现出非常不同的架构(示意图):  图片来自nVidia CUDA文档。其中绿色的是计算单元,橙红色的是存储单元,橙黄色的是控制单元。GPU采用了数量众多的计算单元和超长的流水线,但只有非常简单的控制逻辑并省去了Cache。而CPU不仅被Cache占据了大量空间,而且还有有复杂的控制逻辑和诸多优化电路,相比之下计算能力只是CPU很小的一部分  从上图可以看出:Cache, local memory: CPU > GPU Threads(线程数): GPU > CPURegisters: GPU > CPU 多寄存器可以支持非常多的Thread,thread需要用到register,thread数目大,register也必须得跟着很大才行。SIMD Unit(单指令多数据流,以同步方式,在同一时间内执行同一条指令): GPU > CPU。 CPU 基于低延时的设计:CPU有强大的ALU(算术运算单元),它可以在很少的时钟周期内完成算术计算。当今的CPU可以达到64bit 双精度。执行双精度浮点源算的加法和乘法只需要1~3个时钟周期。CPU的时钟周期的频率是非常高的,达到1.532~3gigahertz(千兆HZ, 10的9次方).大的缓存也可以降低延时。保存很多的数据放在缓存里面,当需要访问的这些数据,只要在之前访问过的,如今直接在缓存里面取即可。复杂的逻辑控制单元。当程序含有多个分支的时候,它通过提供分支预测的能力来降低延时。数据转发。 当一些指令依赖前面的指令结果时,数据转发的逻辑控制单元决定这些指令在pipeline中的位置并且尽可能快的转发一个指令的结果给后续的指令。这些动作需要很多的对比电路单元和转发电路单元。 GPU是基于大的吞吐量设计。GPU的特点是有很多的ALU和很少的cache. 缓存的目的不是保存后面需要访问的数据的,这点和CPU不同,而是为thread提高服务的。如果有很多线程需要访问同一个相同的数据,缓存会合并这些访问,然后再去访问dram(因为需要访问的数据保存在dram中而不是cache里面),获取数据后cache会转发这个数据给对应的线程,这个时候是数据转发的角色。但是由于需要访问dram,自然会带来延时的问题。GPU的控制单元(左边黄色区域块)可以把多个的访问合并成少的访问。GPU的虽然有dram延时,却有非常多的ALU和非常多的thread. 为啦平衡内存延时的问题,我们可以中充分利用多的ALU的特性达到一个非常大的吞吐量的效果。尽可能多的分配多的Threads.通常来看GPU ALU会有非常重的pipeline就是因为这样。所以与CPU擅长逻辑控制,串行的运算。和通用类型数据运算不同,GPU擅长的是大规模并发计算,这也正是密码破解等所需要的。所以GPU除了图像处理,也越来越多的参与到计算当中来。GPU的工作大部分就是这样,计算量大,但没什么技术含量,而且要重复很多很多次。就像你有个工作需要算几亿次一百以内加减乘除一样,最好的办法就是雇上几十个小学生一起算,一人算一部分,反正这些计算也没什么技术含量,纯粹体力活而已。而CPU就像老教授,积分微分都会算,就是工资高,一个老教授资顶二十个小学生,你要是富士康你雇哪个?GPU就是这样,用很多简单的计算单元去完成大量的计算任务,纯粹的人海战术。这种策略基于一个前提,就是小学生A和小学生B的工作没有什么依赖性,是互相独立的。很多涉及到大量计算的问题基本都有这种特性,比如你说的破解密码,挖矿和很多图形学的计算。这些计算可以分解为多个相同的简单小任务,每个任务就可以分给一个小学生去做。但还有一些任务涉及到“流”的问题。比如你去相亲,双方看着顺眼才能继续发展。总不能你这边还没见面呢,那边找人把证都给领了。这种比较复杂的问题都是CPU来做的。  总而言之,CPU和GPU因为最初用来处理的任务就不同,所以设计上有不小的区别。而某些任务和GPU最初用来解决的问题比较相似,所以用GPU来算了。GPU的运算速度取决于雇了多少小学生,CPU的运算速度取决于请了多么厉害的教授。教授处理复杂任务的能力是碾压小学生的,但是对于没那么复杂的任务,还是顶不住人多。当然现在的GPU也能做一些稍微复杂的工作了,相当于升级成初中生高中生的水平。但还需要CPU来把数据喂到嘴边才能开始干活,究竟还是靠CPU来管的。什么类型的程序适合在GPU上运行?  (1)计算密集型的程序。所谓计算密集型(Compute-intensive)的程序,就是其大部分运行时间花在了寄存器运算上,寄存器的速度和处理器的速度相当,从寄存器读写数据几乎没有延时。可以做一下对比,读内存的延迟大概是几百个时钟周期;读硬盘的速度就不说了,即便是SSD, 也实在是太慢了。  (2)易于并行的程序。GPU其实是一种SIMD(Single Instruction Multiple Data)架构, 他有成百上千个核,每一个核在同一时间最好能做同样的事情。编辑于 2021-04-19 20:05​赞同 4011​​88 条评论​分享​收藏​喜欢收起​码农的荒岛求生《计算机底层的秘密》作者​ 关注CPU是十项全能,GPU是偏科的天才。教授 vs 小学生你可以简单的将CPU理解为学识渊博的教授,什么都精通,而GPU则是一堆小学生,只会简单的算数运算,可即使教授再神通广大,也不能一秒钟内计算出500次加减法,因此对简单重复的计算来说单单一个教授敌不过数量众多的小学生,在进行简单的算数运算这件事上,500个小学生(并发)可以轻而易举打败教授。因此我们可以看到,CPU和GPU的最大不同在于架构,CPU适用于广泛的应用场景(学识渊博),可以执行任意程序,而GPU则专为多任务而生,并发能力强,具体来讲就是多核,一般的CPU有2核、4核、8核等,而GPU则可能会有成百上千核:可以看到,CPU内部cache以及控制部分占据了很大一部分片上面积,因此计算单元占比很少,再来看看GPU,GPU只有很简单的控制单元,剩下的大部分都被计算单元占据,因此CPU的核数有限,而GPU则轻松堆出上千核:只不过CPU中每个核的能力好比教授,而GPU的每个核的能力好比一个小学生,关于CPU你可以参考这里:你可能会想,为什么GPU需要这么奇怪的架构呢?为什么GPU需要这么多核心?想一想计算机上的一张图是怎么表示的?无非就是屏幕上的一个个像素:我们需要为每个像素进行计算,而且是相同的运算,就好比刚才例子中的小学生计算计加法一样,注意,对于屏幕来说一般会有上百万个像素,如果我们要串行的为每一个像素进行运算效率就太低了,因此我们可以让GPU中的每一个核心去为相应的像素进行计算,由于GPU中有很多核心,因此并行计算可以大幅提高速度。现在你应该明白为什么GPU要这样工作了吧。除了GPU的核心数比较多之外,GPU的工作方式也比较奇怪。奇怪的工作方式对CPU来说,不同的核心可以执行不同的机器指令,coreA在运行word线程的同时coreB上可以运行浏览器线程,这就是所谓的多指令多数据,MIMD,(Multiple Instruction, Multiple Data)。而GPU则不同,GPU上的这些核心必须整齐划一的运行相同的机器指令,只是可以操作不同的数据,这就好比这些小学生在某个时刻必须都进行加法计算,不同的地方在于有的小学生可能需要计算1+1,有的要计算2+6等等,变化的地方仅在于操作数,这就是所谓的单指令多数据,SIMD,(Single Instruction, Multiple Data)。因此我们可以看到GPU的工作方式和CPU是截然不同的。除了这种工作方式之外,GPU的指令集还非常简单,不像CPU这种复杂的处理器,如果你去看CPU的编程手册就会发现,CPU负责的事情非常多:中断处理、内存管理、IO等等,这些对于GPU来说都是不存在的,可以看到GPU的定位非常简单,就是纯计算,GPU绝不是用来取代CPU的,CPU只是把一些GPU非常擅长的事情交给它,GPU仅仅是用来分担CPU工作的配角。CPU和GPU是这样配合工作的:GPU擅长什么比较适合GPU的计算场景是这样的:1)计算简单;2)重复计算,因此如果你的计算场景和这里的图像渲染相似那么使用GPU就很合理了。因此对于图形图像计算、天气预报以及神经网络等都适用于GPU,哦对了,GPU还适合用来挖矿。好啦,这个话题今天就到这里,希望这篇对大家理解GPU有所帮助。最后,如果你对博主这种讲解风格感兴趣,那么我在知乎上写的很多这类文章你一定不能错过,有很多知乎朋友问有没有pdf版本,我也整理出来了,绘图非常精美,这里还汇总了部分知乎问题,我为其专门设计了封面,并将其命名为《计算机底层的秘密》,现在免费分享给大家。可以使用这个链接:《计算机底层的秘密》 PDF推荐阅读:发布于 2022-08-26 08:43​赞同 844​​36 条评论​分享​收藏​喜欢

药品的GMP、GLP、GCP、GAP、GSP、GDP、GPP、GUP - 知乎

药品的GMP、GLP、GCP、GAP、GSP、GDP、GPP、GUP - 知乎切换模式写文章登录/注册药品的GMP、GLP、GCP、GAP、GSP、GDP、GPP、GUP之一酱药品的GMP、GLP、GCP、GAP、GSP、GDP、GPP、GUP1. GMP是Good Manufacturing Practice的简称,即药品生产质量管理规范。检查对象是:①人;②生产环境;③制剂生产的全过程。"人"是实行GMP管理的软件,也是关键管理对象,而"物"是GMP管理的硬件,是必要条件,缺一不可。GMP的三大要素是:①人为产生的错误减小到最低;②防止对医药品的污染和低质量医药品的产生;③保证产品高质量的系统设计。2. GLP是Good Laboratory Practice的简称,即药物非临床研究质量管理规范。药物的非临床研究是指非人体研究,亦称为临床前研究,用于评价药物的安全性,在实验室条件下,通过动物实验进行非临床(非人体)的各种毒性实验,包括单次给药的毒性试验、反复给药的毒性试验、生殖毒性试验、致突变试验、致癌试验、各种刺激性试验、依赖性试验以及与药品安全性的评价有关的其他毒性试验。制定GLP的主要目的是严格控制化学药品安全性评价试验的各个环节,即严格控制可能影响实验结果准确性的各种主客观因素,降低试验误差,确保实验结果的真实性。3. GCP是Good Clinical Practice的简称,即药物临床试验管理规范。药品临床试验是指任何在人体(病人或健康志愿者)进行的药品系统性研究,以证实或揭示试验用药品的作用及不良反应等。制定GCP 的目的在于保证临床试验过程的规范,结果科学可靠,保证受试者的权益并保障其安全。4. GAP 是Good Agriculture Practice的简称,可翻译为“药材生产管理规范”,它是基于对药材生产过程进行规范化的质量管理提出的概念,是为确保中药材的质量而定。从生态环境、种植到栽培、采收到运输、包装,每一个环节都要处在严格的控制之下。5. GSP是Good Supply Practice的简称,即药品经营质量管理规范,也叫药品供应规范。它是指在药品流通过程中,针对计划采购、购进验收、储存、销售及售后服务等环节而制定的保证药品符合质量标准的一项管理制度。其核心是通过严格的管理制度来约束企业的行为,对药品经营全过程进行质量控制,保证向用户提供优质的药品。是药品经营质量管理的基本准则,适用于中华人民共和国境内经营药品的专营或兼营企业。6. GDP是Good Distribution Practice的简称,即药品供应和管理规范,也称药品流通规范。是世界卫生组织推荐的。注:在编写思路和管理重点上我国GSP和WHO的GDP这两个标准是相似的, GSP 标准更加强调药品购进和验收环节的控制,我国现行的GSP 标准作为药品经营质量管理的基本准则, 适用于中华人民共和国境内经营药品的专营或兼营企业, 覆盖其所经营的原料药和药物制剂产品。而WHO 的GDP 指南不包括原料药,适用于涉及药品流通任何环节的所有人和公司, WHO 推荐的标准综合考虑了药品生产、流通、使用整个供应链的管理, 尤其是包括了运输公司和转运代理。通过建立覆盖整个药品供应链的完善的质量管理体系, 保证药品的质量稳定性和可追溯性。7. GPP是Good Pharmacy Practice的简称,即药房管理规范。GPP是衡量药师为病人或消费者服务的标准,即药师在药品供应、促进健康、提高病人自我保健和改善处方质量等活动中贯彻“药学服务”(Pharmaceutical care)的具体标准。相比以上几个,GPP目前为止还是一个民间标准,并未上升到法律的层面。8. GUP,是英文"Good Using Practice"的缩写,直译为良好的使用规范,即药品使用质量管理规范。它是指医疗机构在药品使用过程中,针对药事管理机构设置、人员素质制度职责、设施设备,药品的购进、验收、储存、养护和调剂使用,药品不良反应监测、信息反馈、合理用药等环节而制定的一整套管理标准和规程。制定GUP有助于完善药品质量监督管理体系,解决目前我国部分药品监管法规滞后的问题,不断提高医疗机构的综合素质,推动我国药品监管尽快与国际接轨。以上这几个概念之间的关系如下图所示:发布于 2020-12-16 17:09药品经营质量管理规范药品生产GMP​赞同 61​​2 条评论​分享​喜欢​收藏​申请

GUP架构常见名词解释 - 知乎

GUP架构常见名词解释 - 知乎切换模式写文章登录/注册GUP架构常见名词解释心灬魔CPU:(central processing unit,中央处理器)计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。CPU内核:CPU内核是CPU中间的核心芯片,由单晶硅制成,用来完成所有的计算、接受/存储命令、处理数据等,是数字处理核心。CPU所有的计算、接受/存储命令、处理数据都由核心执行。各种CPU核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元和总线接口GPU: (Graphics Processing Unit,图形处理器)进行图像和图形相关运算工作的微处理器,主要由三个单元: 控制单元:由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等组成 运算单元:执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。 存储单元:包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。Memory:(内存,主存)它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)只读存储器(ROM):出厂就写入且永久保存的,比如计算机的 BIOS ROM (开发知道即可)随机存储器(RAM):我们常用的内存条,插在主板上的 8G/16G/32G...的集成电路板,分为 DRAM( Dynamic RAM,动态随机存储器)和SRAM( Static RAM,静态随机存储器)高速缓存(CACHE):它位于CPU与内存之间,是一个读写速度比内存更快的存储器。当CPU向内存中写入或读出数据时,这个数据也被存储进高速缓冲存储器中。当CPU再次需要这些数据时,CPU就从高速缓冲存储器读取数据,我们常见的L1 Cache,L2 Cache等。每一级缓存中所储存的全部数据都是下一级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的,所以其容量也是相对递增的。L1 Cache:(一级缓存):分为一级指令缓存和一级数据缓存,位于CPU内核的旁边,是与CPU结合最为紧密的CPU缓存,也是历史上最早出现的CPU缓存。由于一级缓存的技术难度和制造成本最高,提高容量所带来的技术难度增加和成本增加非常大,所带来的性能提升却不明显,性价比很低,而且现有的一级缓存的命中率已经很高,所以一级缓存是所有缓存中容量最小的,比二级缓存要小得多。L2 Cache:(二级缓存):缓存是在独立芯片(有可能是在一个扩展卡上),它的访问速度能比大的主存要快得多。通常一个二级缓存的大小为1024Kb(1Mb),大多数CPU的升级都是二级缓存的增加L3 Cache:(三级缓存):读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用。进一步降低内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏软件都很有帮助。编辑于 2023-01-31 11:59・IP 属地北京架构​赞同 1​​添加评论​分享​喜欢​收藏​申请

GPU-Z Graphics Card GPU Information Utility

GPU-Z Graphics Card GPU Information Utility

Home

Reviews

Forums

Downloads

Case Mod Gallery

Databases

Databases…

Back

VGA Bios Collection

GPU Database

CPU Database

SSD Database

Review Database

Upcoming Hardware

Our Software

Our Software…

Back

GPU-Z

RealTemp

NVCleanstall

TPUCapture

MemTest64

More

More…

Back

Articles

Old Stuff

Computer Trivia

TPU Live

Contact Us

TechPowerUp GPU-Z

GPU-Z is a lightweight system utility designed to provide vital information about your video card and graphics processor.

Download GPU-Z

Support Forum

Lookup Validation ID:

1,905,098 Results in Database

GPU-Z is used all over the world

Main Features

Supports NVIDIA, AMD, ATI and Intel graphics devices

Displays adapter, GPU and display information

Displays overclock, default clocks and 3D/boost clocks (if available)

Detailed reporting on memory subsystem: memory size, type, speed, bus width

Includes a GPU load test to verify PCI-Express lane configuration

Validation of results

GPU-Z can create a backup of your graphics card BIOS

No installation required, optional installer is available

Support for Windows 11 / Windows 10 / Windows 8 / Windows 7 / Vista / Windows XP (both 32 and 64 bit versions are supported)

.. and yes, the author of CPU-Z has granted us permission to use a name similar to his product. Thanks Franck.

Information for IT Administrators & Security

Our GPU-Z software will only make network requests to www.gpu-z.com, and only through port 443 (https).

www.gpu-z.com uses its own IP address, which isn't used by any other host, we don't use SNI.

No requests are sent to *.techpowerup.com.

You may use HTTPS deep inspection / MITM to look at GPU-Z network traffic.

The following URL endpoints are used:

https://www.gpu-z.com/gpuz/version_v2 (for the update check, on startup, can be disabled in settings)

https://www.gpu-z.com/vgabios/upload_v2/* (for the VBIOS upload, which is a user-initiated action)

https://www.gpu-z.com/gpu-specs/lookup (when the 'Lookup' button is clicked, opens in the user's browser. Once loaded, the user is redirected to our GPU Specs Database)

https://www.gpu-z.com/gpuz/d3dx43.exe (the 3D render test requires some Microsoft libraries. When not installed, the user gets offered to download them automatically from this URL)

Want more info? Questions? Requests? E-Mail us at w1zzard@techpowerup.com, we're happy to help.

Enterprise Licensing

GPU-Z is free to use for personal and commercial usage. However, you may not redistribute GPU-Z as part of a commercial package.

We also offer a GPU-Z SDK, which is provided as simple-to-use DLL with full feature set that can be used from C/C++/.NET and others. Commercial support and customization options are available, please contact us for details.

Screenshots

Support Forums

Discussion Forum

Test builds Forum

Documentation

It's so simple to use, you don't need documentation.

Just download and run the binary, without installation.

Downloads

The latest version is available in the downloads section.

Mar 7th, 2024 19:04 PST

change timezone

Sign in / Register

Latest GPU Drivers

NVIDIA GeForce 551.76 WHQL

AMD Radeon 24.2.1 WHQL

Intel Arc & IGP 101.5333 WHQL

New Forum Posts

19:03

by

Dragam1337

Is Intel going to deliver a processor/chipset worth waiting for? (170)

18:55

by

Ferather

DMAS Design [SPDIF-Optical] (63)

18:49

by

W1zzard

Does TPU use Google-Tracking? (50)

18:26

by

VuurVOS

BIOS update help - X470 gaming plus (non-max) (5)

18:25

by

pavle

nvflash troubles (1)

18:12

by

Siegfried

Recommendation for new private LAN network (33)

18:04

by

Waldorf

Which is better for improving videos - GTX 1080 ti x RTX 3060 12G (16)

17:56

by

de.das.dude

What's your latest tech purchase? (19708)

17:42

by

Wirko

SSD Defragging: The safe way (162)

17:42

by

Vayra86

Can 12VHPWR issues be fixed? (166)

Popular Reviews

Feb 13th, 2024

Chat with NVIDIA RTX Tech Demo Review

Feb 22nd, 2024

Sparkle Arc A380 Genie Review

Feb 14th, 2024

Scythe Fuma 3 Review

Feb 12th, 2024

Upcoming Hardware Launches 2023 (Updated Feb 2024)

Feb 20th, 2024

Arctic Liquid Freezer III 240 Black Review - Intel Contact Frame Included

Feb 15th, 2024

NVIDIA GeForce RTX 3050 6 GB Review - The Fastest Slot-Powered GPU

Feb 26th, 2024

Sapphire Radeon RX 7900 GRE Pulse Review

Feb 13th, 2024

G.SKILL Trident Z5 RGB DDR5-6400 64 GB CL32 Review

Feb 16th, 2024

DELUX M800 Ultra Review

Feb 19th, 2024

EK Nucleus AIO CR360 Lux D-RGB Review

Controversial News Posts

Intel Core i9-14900KS Draws as much as 409W at Stock Speeds with Power Limits Unlocked

(226)

AMD Ryzen 9 7900X3D Drops to $409, to Clash with Core i7-14700K

(142)

NVIDIA Accused of Acting as "GPU Cartel" and Controlling Supply

(126)

NVIDIA GeForce RTX 4070 Ti Drops Down to $699, Matches Radeon RX 7900 XT Price

(122)

NVIDIA RTX 50-series "Blackwell" to Debut 16-pin PCIe Gen 6 Power Connector Standard

(103)

Widespread GeForce RTX 4080 SUPER Card Shortage Reported in North America

(95)

Elon Musk Sues Open AI and Sam Altman for Breach of Founding Contract

(94)

Windows 11 24H2 Instruction Requirement Affects Older/Incompatible CPUs

(85)

Copyright © 2004-2024 www.techpowerup.com.

All rights reserved.

All trademarks used are properties of their respective owners.

are not allowed to access this resour

百度知道 - 信息提示

百度知道 - 信息提示

百度首页

商城

注册

登录

网页

资讯

视频

图片

知道

文库

贴吧采购

地图更多

搜索答案

我要提问

百度知道>提示信息

知道宝贝找不到问题了>_

该问题可能已经失效。返回首页

15秒以后自动返回

帮助

 | 意见反馈

 | 投诉举报

京ICP证030173号-1   京网文【2023】1034-029号     ©2024Baidu  使用百度前必读 | 知道协议