所以我在一個基本的高中編碼類。我們不得不想出一個 我們的學期項目。我選擇了 基於我的想法和應用 沒有用於傳統的代碼。 這提出了使用CUDA 的想法。我會 知道比較傳統 方法與非常規方法的最佳方法之一是 字符串生成和比較。其中一個 可以演示傳統CPU 與定時器和輸出的匹配速度和 。和 然後你可以顯示GPU 處理速度和輸出的增加(或減少 )。C++到Cuda轉換/字符串生成和比較
我編寫了這個C++代碼來生成隨機字符,這些隨機字符被輸入到 字符數組中,然後將該數組匹配到預定字符串。然而像大多數CPU編程那樣, 相對於 GPU編程相當慢。我查看了CUDA API,找不到 可能會導致我在正確的 方向上尋找我想要做的事情。
下面是我用C++編寫的代碼,如果任何人都可以這樣的事情的方向指向我 作爲 隨機數生成器,我可以 轉換爲使用ASCII碼, 字符,這將是極好的。
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int sLength = 0;
int count = 0;
int stop = 0;
int maxValue = 0;
string inString = "[email protected]";
static const char alphanum[] =
""
"[email protected]#$%^&*"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";
int stringLength = sizeof(alphanum) - 1;
char genRandom()
{
return alphanum[rand() % stringLength];
}
int main()
{
cout << "Length of string to match?" << endl;
cin >> sLength;
string sMatch(sLength, ' ');
while(true)
{
for (int x = 0; x < sLength; x++)
{
sMatch[x] = genRandom();
//cout << sMatch[x];
count++;
if (count == 2147000000)
{
count == 0;
maxValue++;
}
}
if (sMatch == inString)
{
cout << "It took " << count + (maxValue*2147000000) << " randomly generated characters to match the strings." << endl;
cin >> stop;
}
//cout << endl;
}
}
這似乎是我正在尋找。我的印象是,這基本上是一種強力方法,但在不同的實施情況下。任何想法如何我可以更好地執行這個代碼來實現真正的BF methodoloy? – Cistoran 2011-02-23 17:47:44