Exemple #1
0
        private void button2_Click(object sender, EventArgs e)
        {
            multiThreadTest.esplisedTime = 0;
            DouthreadTest dtt = new DouthreadTest();

            //dtt.threadtasks[0] = multiThreadTest.Int4SSE_MAX;
            //dtt.threadtasks[1] = multiThreadTest.Double_4SSEMAX;
            dtt.threadtasks[0] = multiThreadTest.Double_MaMulTest;
            dtt.threadtasks[1] = multiThreadTest.Int_MaMulTest;
            dtt.Start();
            listBox1.Items.Add("混合双线程自动sse浮点:" + dtt.eslipsedtimes[0].ToString() + "自动sse整数" + dtt.eslipsedtimes[1].ToString());
        }
Exemple #2
0
        private void Double_ThreadTest()
        {
            testResult = new UIdelegete(DouThreadtestResultFlash);
            var tdsin = new Thread(Sin_Tdtest);

            tdsin.Start();
            tdsin.Join();
            var dtt = new DouthreadTest();

            dtt.threadtasks[0] = multiThreadTest.Inttest;
            dtt.threadtasks[1] = multiThreadTest.Inttest;
            dtt.Start();
            dtt.reset();
            resultRecord.Enqueue(multiThreadTest.esplisedTime / 4);
            multiThreadTest.esplisedTime = 0;
            //浮点
            dtt.threadtasks[0] = multiThreadTest.Floattest;
            dtt.threadtasks[1] = multiThreadTest.Floattest;
            dtt.Start();
            dtt.reset();
            resultRecord.Enqueue(multiThreadTest.esplisedTime / 4);
            multiThreadTest.esplisedTime = 0;
            //rbg插值
            dtt.threadtasks[0] = multiThreadTest.RGBInsert;
            dtt.threadtasks[1] = multiThreadTest.RGBInsert;
            dtt.Start();
            dtt.reset();
            resultRecord.Enqueue(multiThreadTest.esplisedTime / 4);
            multiThreadTest.esplisedTime = 0;
            //渲染
            dtt.threadtasks[0] = multiThreadTest.renderTest;
            dtt.threadtasks[1] = multiThreadTest.renderTest;
            dtt.Start();
            dtt.reset();
            resultRecord.Enqueue(multiThreadTest.esplisedTime / 4);
            multiThreadTest.esplisedTime = 0;
            //浮点矩阵
            dtt.threadtasks[0] = multiThreadTest.FloatMax;
            dtt.threadtasks[1] = multiThreadTest.FloatMax;
            dtt.Start();
            dtt.reset();
            resultRecord.Enqueue(multiThreadTest.esplisedTime / 4);
            multiThreadTest.esplisedTime = 0;

            //整数矩阵
            dtt.threadtasks[0] = multiThreadTest.IntMax;
            dtt.threadtasks[1] = multiThreadTest.IntMax;
            dtt.Start();
            dtt.reset();
            resultRecord.Enqueue(multiThreadTest.esplisedTime / 4);
            multiThreadTest.esplisedTime = 0;
            this.Invoke(testResult);
        }
Exemple #3
0
        private void button8_Click(object sender, EventArgs e)
        {
            multiThreadTest.esplisedTime = 0;
            DouthreadTest dtt  = new DouthreadTest();
            string        str1 = "单项双线程————";

            if (renda.Checked)
            {
                dtt.threadtasks[0] = multiThreadTest.renderTest;
                dtt.threadtasks[1] = multiThreadTest.renderTest;
                str1 += "光照渲染器";
            }
            else if (inttest.Checked)
            {
                dtt.threadtasks[0] = multiThreadTest.Inttest;
                dtt.threadtasks[1] = multiThreadTest.Inttest;
                str1 += "随机整数";
            }
            else if (floattest.Checked)
            {
                dtt.threadtasks[0] = multiThreadTest.Floattest;
                dtt.threadtasks[1] = multiThreadTest.Floattest;
                str1 += "随机浮点";
            }
            else if (rgbinsert.Checked)
            {
                dtt.threadtasks[0] = multiThreadTest.RGBInsert;
                dtt.threadtasks[1] = multiThreadTest.RGBInsert;
                str1 += "双线性插值";
            }
            else if (autossedble.Checked)
            {
                dtt.threadtasks[0] = multiThreadTest.FloatMax;
                dtt.threadtasks[1] = multiThreadTest.FloatMax;
                str1 += "自动sse浮点矩阵";
            }
            else if (autosseint.Checked)
            {
                dtt.threadtasks[0] = multiThreadTest.IntMax;
                dtt.threadtasks[1] = multiThreadTest.IntMax;
                str1 += "自动sse整数矩阵";
            }
            else if (sse4f.Checked)
            {
                dtt.threadtasks[0] = multiThreadTest.Double_4SSEMAX;
                dtt.threadtasks[1] = multiThreadTest.Double_4SSEMAX;
                str1 += "四路sse浮点矩阵";
            }
            else if (fourwaysseint.Checked)
            {
                dtt.threadtasks[0] = multiThreadTest.Int4SSE_MAX;
                dtt.threadtasks[1] = multiThreadTest.Int4SSE_MAX;
                str1 += "四路sse整数矩阵";
            }
            else if (avx4f.Checked)
            {
                dtt.threadtasks[0] = multiThreadTest.Double_4AVXMAX;
                dtt.threadtasks[1] = multiThreadTest.Double_4AVXMAX;
                str1 += "四路avx浮点矩阵";
            }
            else if (ia32dblmaxmul.Checked)
            {
                dtt.threadtasks[0] = multiThreadTest.Double_MaMulTest;
                dtt.threadtasks[1] = multiThreadTest.Double_MaMulTest;
                str1 += "ia32浮点矩阵";
            }
            else if (ia32intmaxmul.Checked)
            {
                dtt.threadtasks[0] = multiThreadTest.Int_MaMulTest;
                dtt.threadtasks[1] = multiThreadTest.Int_MaMulTest;
                str1 += "ia32整数矩阵";
            }
            else
            {
                return;
            }
            dtt.Start();
            listBox1.Items.Add(str1 + "————" + dtt.eslipsedtimes[0].ToString() + "," + dtt.eslipsedtimes[1]);
            multiThreadTest.esplisedTime = 0;
        }