CPU Dasher Product Introduction

Source: Internet
Author: User

CPU Dasher is a rare performance testing tool. Currently, only IOS is supported.

New Features of Version 1.1:

1. Supported IOS 6.0

2. Supports iPhone 5 4 inch screen display

3. removed bus frequency (0 will be returned because of system call)

4. Change the CPU frequency to dynamic computing during running (because the system call will return 0). Therefore, before testing the device, check whether the frequency is abnormal, because the latest versions of IOS devices use the frequency conversion technology, the frequency obtained at the beginning may not be the most accurate inherent frequency. At this point, you can first return the application to the background and then re-open it. This will re-calculate the current CPU frequency.

5. Whether the monitor can be used in user mode is removed. This coprocessor command is also a privileged command in armv7s, and an exception occurs when executed in user mode.

6. Memory Page size (usually 4 kb) with paging mechanism added)

7. added a memory access test.

8. added a test that combines memory access with arithmetic operations.

9. The armv6 Instruction Set test is added to the matrix multiplication section.

In addition, armv7s still does not support new commands such as vfpv4 and FMA.

------------------------------------------------

CPU Dasher has three major sections:

1. device Overview: the device overview includes the system version number, device type, available memory size, support for Retina display, MAC address, and IP address of the current iOS device. If the network is not connected, the IP address is 0.0.0.0. Then, the CPU information is a wonderful part. This is a fresh product in the current app store, including the CPU type (ARM, Intel, MIPS, and so on). Of course, we must be all arm here, haha ~) , CPU architecture (armv7, armv7f, etc.), number of cores, byte order (must be a small end), cache row size (some devices are 32 bytes, and some devices are 64 bytes) l1 command cache, L1 data cache, L2 cache, and L3 cache, followed by CPU clock speed and bus frequency, whether or not the Performance Monitor is supported in user mode (usually not open, haha ~).

2. instruction cycle: the instruction cycle section is used to measure the execution cycle of each instruction in real time. This section contains a vast majority of arm commands, not including memory access commands and system commands, because memory access operations have many external causes and are not easy to measure. system commands are not helpful to high-performance computing. Because the ARM core used by the current iOS device has an excessive assembly line, some basic arithmetic logic operation commands can be executed within 0.5 cycles. Because some devices, such as the iPhone 4S, may use variable frequency technology, the minimum number of cycles may be larger than the maximum number of cycles in some cases, in this case, users think that the maximum number of periods is the same as the minimum number of periods.

3. Use matrix multiplication to test the CPU performance of the current device. There are five matrix types: 64x64, 128x128, 256x256, 512x512, and 1024x1024. There are four computing modes: unoptimized, memory access optimized, neon optimized, and dual-core optimized. Among them, neon optimization is based on memory access optimization, while dual-core optimization is based on Neon optimization. Therefore, dual-core optimization is the fastest form of computing. Of course, if your iOS device has only one core, there will be no dual-core optimization mode. Please be patient during performance testing. Do not touch the screen. Otherwise, the results may be affected. The calculation result is displayed. Finally, the most important thing is: Generally,Do not use naive and memory optimization to test the matrix calculation of X. Otherwise, it may take several minutes..

 

The following is the C code for calculating 64x64 Matrix Multiplication. The results of other optimization methods are the same. These are strictly tested.

static void NaiveInteger64(const void *pIn1, const void *pIn2, void *pOut){    const int *p1 = (const int*)pIn1;    const int *p2 = (const int*)pIn2;    int *p3 = (int*)pOut;        for(int row = 0; row < 64; row++)    {        for(int col = 0; col < 64; col++)        {            int sum = 0;                        for(int i = 0; i < 64; i++)                sum += p1[i] * p2[64 * i + col];                        p3[row * 64 + col] = sum;        }                p1 += 64;    }}

 
App Store download link: http://itunes.apple.com/us/app/cpu-dasher/id561909183? Ls = 1 & mt = 8

(Version 1.1)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.