标签: intel

基于Intel的显卡是否与tensorflow/GPU兼容?

此显卡是否与tensorflow/GPU兼容?

*-display               
   description: VGA compatible controller
   product: Haswell-ULT Integrated Graphics Controller
   vendor: Intel Corporation
   physical id: 2
   bus info: pci@0000:00:02.0
   version: 09
   width: 64 bits
   clock: 33MHz
   capabilities: msi pm vga_controller bus_master cap_list rom
   configuration: driver=i915 latency=0
   resources: irq:44 memory:c2000000-c23fffff memory:b0000000-bfffffff ioport:7000(size=64)
Run Code Online (Sandbox Code Playgroud)

gpu intel graphic tensorflow

22
推荐指数
1
解决办法
2万
查看次数

GCC中的FMA3:如何启用

我有一个i5-4250U,它有AVX2和FMA3.我正在测试Linux上的GCC 4.8.1中的一些密集矩阵乘法代码.下面是我编译的三种不同方式的列表.

SSE2:     gcc matrix.cpp -o matrix_gcc -O3 -msse2 -fopenmp
AVX:      gcc matrix.cpp -o matrix_gcc -O3 -mavx  -fopenmp
AVX2+FMA: gcc matrix.cpp -o matrix_gcc -O3 -march=native -fopenmp -ffast-math
Run Code Online (Sandbox Code Playgroud)

SSE2和AVX版本的性能明显不同.但是,AVX2 + FMA并不比AVX版本好.我不明白这一点.假设没有FMA,我获得了超过80%的CPU峰值触发器,但我认为我应该能够用FMA做得更好.矩阵乘法应直接受益于FMA.我基本上是在AVX中同时做八个点产品.当我检查march=native它给出:

cc -march=native -E -v - </dev/null 2>&1 | grep cc1 | grep fma 
...-march=core-avx2 -mavx -mavx2 -mfma -mno-fma4 -msse4.2 -msse4.1 ...
Run Code Online (Sandbox Code Playgroud)

所以我可以看到它已启用(只是为了确保我添加-mfma但它没有区别). ffast-math应该允许宽松的浮点模型如何在SSE/AVX中使用融合乘法 - 加法(FMA)指令

编辑:

基于Mysticial的评论我继续使用_mm256_fmadd_ps,现在AVX2 + FMA版本更快. 我不确定为什么编译器不会为我这样做. 对于超过1000x1000的矩阵,我现在得到大约80 GFLOPS(没有FMA的110%的峰值触发器).如果有人不信任我的峰值翻牌计算,这就是我所做的.

peak flops (no FMA) = frequency * simd_width * ILP * cores …
Run Code Online (Sandbox Code Playgroud)

c++ gcc intel avx fma

21
推荐指数
2
解决办法
1万
查看次数

英特尔是什么意思"退休"?

在" 英特尔手册"中,提到了许多性能事件,这些事件的描述类似于"错误预测的分支指令已退役".retired在这种情况下究竟意味着什么?

请注意,我已经查看了英特尔的性能分析指南,其中指出"退役"具有非常精确的含义(第8页),参考第7页的图表,但我认为我缺乏背景知识来准确理解什么是意思是Retirement / Writeback.这个过程究竟是什么?它涉及什么?

performance x86 x86-64 intel

21
推荐指数
1
解决办法
6858
查看次数

涉及Intel SnB系列CPU上的微编码指令的循环分支对齐

这与此问题有关,但不一样:x86-64汇编的性能优化 - 对齐和分支预测与我之前的问题略有关系:无符号64位到双倍转换:为什么这个算法来自g ++

以下是一个不真实的测试用例.这种素性测试算法是不明智的.我怀疑任何真实世界的算法都不会执行如此多的小内循环(num大概是2**50的大小).在C++ 11中:

using nt = unsigned long long;
bool is_prime_float(nt num)
{
   for (nt n=2; n<=sqrt(num); ++n) {
      if ( (num%n)==0 ) { return false; }
   }
   return true;
}
Run Code Online (Sandbox Code Playgroud)

然后g++ -std=c++11 -O3 -S生成以下内容,包含RCX n和包含XMM6 sqrt(num).请参阅我之前发布的剩余代码(在此示例中从未执行过,因为RCX永远不会变得足够大,不能被视为带符号的否定).

jmp .L20
.p2align 4,,10
.L37:
pxor    %xmm0, %xmm0
cvtsi2sdq   %rcx, %xmm0
ucomisd %xmm0, %xmm6
jb  .L36   // Exit the loop
.L20:
xorl    %edx, %edx
movq    %rbx, %rax …
Run Code Online (Sandbox Code Playgroud)

performance x86 assembly intel micro-optimization

21
推荐指数
3
解决办法
2156
查看次数

Why does this loop take 1.32 cycles per iteration

Consider this simple C++ function to calculate the prefix sum of an array:

void prefix_sum(const uint32_t* input, uint32_t* output, size_t size) {
    uint32_t total = 0;
    for (size_t i = 0; i < size; i++) {
        total += input[i];
        output[i] = total;
    }
}
Run Code Online (Sandbox Code Playgroud)

The loop compiles to the following assembly on gcc 5.5:

.L5:
        add     ecx, DWORD PTR [rdi+rax*4]
        mov     DWORD PTR [rsi+rax*4], ecx
        add     rax, 1
        cmp     rdx, rax
        jne     .L5
Run Code Online (Sandbox Code Playgroud)

I don't see anything that would prevent …

c++ optimization x86 intel micro-optimization

21
推荐指数
1
解决办法
698
查看次数

英特尔和AMD处理器是否具有相同的汇编程序?

C语言用于编写UNIX以实现可移植性 - 使用不同编译器编译的相同C语言程序生成不同的机器指令.为什么Windows操作系统能够在Intel和AMD处理器上运行?

c x86 compatibility amd intel

20
推荐指数
5
解决办法
2万
查看次数

在Mac OS X Intel上启用浮点中断

在Linux上,feenableexcept和fedisableexcept可用于控制浮点异常上SIGFPE中断的生成.如何在Mac OS X Intel上执行此操作?

用于启用浮点中断的内联汇编在http://developer.apple.com/documentation/Performance/Conceptual/Mac_OSX_Numerics/Mac_OSX_Numerics.pdf,第7-15页中提供,但仅适用于PowerPC汇编.

macos intel interrupt floating-point-exceptions

18
推荐指数
2
解决办法
4832
查看次数


Android模拟器系统映像和AMD处理器

我使用AMD FX X6 6300型处理器.(它支持虚拟化,我的BIOS设置为ON)
我安装了"Intel x86 Emulator Accelerator".当我尝试运行英特尔加速器设置时,我得到了无法安装的设置.(错误是虚拟化)

SDK Manager具有以下系统映像选项:
Android 4.2.2

  • 英特尔x86 Atom系统映像
  • ARM EABI v7a系统映像
  • MIPS系统映像

那么下载英特尔x86系统映像是否有意义?或者没有安装HAXM它没用?

我应该下载ARM或MIPS图像吗?对于AMD处理器,您会为仿真器系统映像推荐什么?

或者唯一的选择是使用快照?

android arm intel mips android-emulator

18
推荐指数
2
解决办法
4万
查看次数

奇怪的JIT对循环习语的悲观化

在分析最近一个问题的结果时,我遇到了一个非常奇怪的现象:显然,HotSpot的额外一层JIT优化实际上会降低我机器上的执行速度.

这是我用于测量的代码:

@OutputTimeUnit(TimeUnit.NANOSECONDS)
@BenchmarkMode(Mode.AverageTime)
@OperationsPerInvocation(Measure.ARRAY_SIZE)
@Warmup(iterations = 2, time = 1)
@Measurement(iterations = 5, time = 1)
@State(Scope.Thread)
@Threads(1)
@Fork(2)
public class Measure
{
  public static final int ARRAY_SIZE = 1024;
  private final int[] array = new int[ARRAY_SIZE];

  @Setup public void setup() {
    final Random random = new Random();
    for (int i = 0; i < ARRAY_SIZE; ++i) {
      final int x = random.nextInt();
      array[i] = x == 0? 1 : x;
    }
  }

  @GenerateMicroBenchmark public int normalIndex() …
Run Code Online (Sandbox Code Playgroud)

java cpu intel microbenchmark jmh

18
推荐指数
1
解决办法
338
查看次数