2816

作者: KeYLock | 来源:发表于2016-07-19 00:12 被阅读0次

    PY2

    Q: 如何用Python提取出一段Python代码中的所有注释?

    A: Python的注释要么是#号开头,要么是三引号'''包裹起来,也许你会采用正则表达式,但是实际上这么做会把代码里的#和'''全部弄出来。所以仔细想想,其实你需要写的是一个类似Python解释器的东西,准确的说,是用Python实现一棵“Python注释”的语法树,只不过,解释器需要逐过程解释代码,而你只需要逐行解释注释就可以了。这里面涉及到一些很简单的编译原理,如果你是一个CS的学生,实现起来并不太难。(但是有些烦。)

    AR2

    Q: Nehalem架构引入了X58芯片组,取代了南北桥,同时引入了QPI(快速通道互联),你知道QPI与传统的FSB相比,有何异同吗,它的主要优势体现在什么方面?

    A:QPI是一种点对点、serial(串行)的硬件互联方式,而FSB采用了在一条总线中进行并行传输的方式进行互联,由于点对点以及serial的传输方式,QPI的数据传输完整性和电力消耗都远远小于FSB,且拥有更快的速度和更低的延迟。而还有一种叫做DMI的东东,则是介于FSB和QPI的另一种互联方式。

    AR3

    Q: 在费米架构的GPU中,每个SM独占L1 Cache,这个Cache基于程序员和硬件同时托管,所有SM共享一个L2 Cache,这个Cache只由硬件托管,请问缓存在处理器核心或者SM之间共享有何意义,为何要做这样的设计?

    A:这主要是为了让设备之间能够通过相同的共享缓存进行通信,这可以使得处理器之间不再需要通过延迟极高的全局内存进行通信,减少了数据写回所需的时间,大大优化了原子操作的速度。

    AR4

    Q: GPU上基于SIMD的实现模式与多核CPU上基于MIMD的实现模式各有什么优缺点?

    A:由于每个执行单元的指令流都是相同的,SIMD模式会把指令的获取时间均摊到一个单元,若出现分支,则将它们序列化。而MIMD在出现分支时,则不会序列化,这其实是CPU和GPU硬件构造决定的,CPU上有更多的译码器和指令存储器,而且拥有更高的指令带宽。因此SIMD用于处理大量数据操作(比如高密度浮点计算)是很有优势的,而指令密集型操作则适合交给CPU采用MIMD方式完成。

    AR5

    Q: GPU存取计算机系统中的主DRAM内存是非常缓慢的,以费米架构为基准,GPU为程序员提供了多种不同层次的存储器,有哪几个不同层次和类型的存储器,它们各自的带宽和延迟周期是多少?

    A:

    存储类型 寄存器 共享内存 纹理内存 常量内存 全局内存
    带宽 ~8TB/s ~1.5TB/s ~200MB/s ~200MB/s ~200MB/s
    延迟(Cycles) 1 1~32 400~600 400~600 400~600

    相关文章

      网友评论

          本文标题:2816

          本文链接:https://www.haomeiwen.com/subject/idlmjttx.html