• 【MIC学习笔记】in/out/inout详细用法

    下面的代码主要使用in作为测试, out和inout的用法应该是类似的, 下面主要以代码为主, 并且附带执行结果。

  • 【MIC学习笔记】Offload Using a Pragma

    这种方式对应于我们前面所说的非共享内存模型,这里记录一下它的基本用法

    定义MIC使用的函数和变量

    如果是局部变量, 那么我们不需要做额外的工作, 如果全局变量或者函数, 要在mic上使用它们, 则需要使用下面的方式声明或者定义:

    1
    2
    3
    4
    __declspec( target (mic)) function-declaration
    __declspec( target (mic)) variable-declaration
    __attribute__ (( target (mic))) function-declaration
    __attribute__ (( target (mic))) variable-declaration

    其中__declspec可以用于windows或者linux系统, 而_attribute__只能用于linux.

  • 【MIC学习笔记】HelloWorld

    什么是MIC

    以下摘自”MIC高性能编程指南”

    通常提及MIC系列, 会提及以下几个名词: MIC(Many Integrated Core), Knights系列(如Knights Corner. KNC), Intel® Xeon PhiTM(官方中文译名:英特尔® 至强融核TM). MIC作为这个系列的架构名称, 类似于CPU, 是对采用这种架构的产品的总称. Knights 系列, 是Intel公司推出的MIC产品的研发代号, 类似于Ivy Bridge, 是内部研发人员对某一代产品的命名,不用于商业用途, 例如第一代正式产品锁采用的,就是Knights Corner架构. 提到具体KNx的架构, 与MIC架构相比, 可以看做是面向对象中父类与子类的关系, MIC架构是父类, 而KNx则是子类. Intel® Xeon PhiTM则是产品线的总称, 类似于Pentium、 Xeon等产品系列, Intel® Xeon PhiTM 是Intel公司推出的基于MIC架构的高性能计算协处理器卡的系列产品名称.

  • 【C】alignment

    内存访问粒度

    如果没有深入的了解内存方面的东西, 我们可能会认为内存不过是简单的字节数组, 例如下面的形式
    image
    但是实际上, 计算机的处理器并不是以单个字节块为单位读写内存, 而是以2个,4个,8个,甚至16或者32个字节块为单位读写内存,如下图所示 我们将处理器访问内存单元的大小叫做其内存访问的粒度.
    image
    知道上面这一点很重要, 这也是C语言alignment的基础.

  • 【C】记录两个C语言的误区

    前言

    之前在windows上使用vc++6.0,编写过c的代码,主要是为了完成一些作业,并没有十分深入的学习C语言. 因此当时留下了两个对于c语的言的误区,现在记录一下。

    关于函数的调用

    一直以我都认为在调用一个方法之前,必须要在前面声明原型或者直接定义该方法, 大概如下面的形式, 否则程序就会出现编译错误。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int test();

    int main() {
    test();
    return 0;
    }
    int test() {
    //some code
    return 0;
    }
  • 我的博客日志——主题更新

    2017-05-20 评论系统迁移到 Disqus

    由于多说停止服务, 那就迁移咯

    在每篇文章后加入版权信息

  • Windows下WampServer初体验

    最近初步涉及php及服务器的搭建,曾花了一个晚上搭建Apache, 由于没有基础,搞的头都大了最终也没成功…不过,在这里介绍一款软件WampServer,这款软件在安装的过程中就已经把Apache、MySQL、PHP继承好了,而且也做好了相应的配置,安装时直接下一步大法就好了,简直是小白的福音!

  • 如何让bootstrap兼容ie8+

    想必做前端开发的都应该听说过Bootstrap, 一款优秀的前端开发框架。前段时间博主做的一个项目便尝试着用了boostrap来搭建,确定非常快,而且响应式做的特别好,省去了许多麻烦。不过由于我用的是Bootstrap 3.0,结果发现在ie8下崩掉了,心塞啊!又翻出bootstrap官方API,细读之……这才明白由于bootstrap做响应式所用的栅格布局在ie8下不被支持,而且也不支持html5的新标签和css3的一些效果,如圆角、阴影、一些过渡效果等……(详情见下图) 翻了好多教程,总结出以下方法,与大家分享!

  • 【应用】信息短时存储

    功能

    这是一个在线的应用,用来短时间存储一些信息,以实现在不同设备上共享这些信息的功能。其实目的就是可以将手机上的一些信息快速的复制到电脑上,尤其是在使用Linux系统的时候。下面是该应用的截图。其中阅后即焚是指信息被访问一次之后就会被销毁。

    流程

    程序主要的流程就是首先在文本框中输入或者粘贴一些内容,然后保存到服务器(使用的是新浪sae),保存成功之后会返回给客户端一个编号,通过该编号就可以访问存储的内容。因为就是为了给手机和电脑之间的复制粘贴提供一个介质,所以信息的有效时间暂时设为了2分钟,2分钟之后就会清除保存的信息。
    image

  • 【C】Storage Class

    什么是Storage Class

    Storage Class翻译成中文为存储类(总感觉翻译成汉语不太好),用来修饰C中变量和函数。如果没有显式的指定storage class,会使用默认值。它的作用主要以下几点:

    • 决定变量存储的位置。每个变量都需要一定的空间来存储,经常用到的存储单元就是内存,除了内存之外,CPU中的寄存器也可以存储变量,而且一般来说寄存器的访问速度要远远大于内存的访问速度。
    • 决定变量的生命周期。
    • 决定变量的可见级别。
    • 决定变量是否初始化。