我尝试了指针和引用(&),但当我尝试获取信息(我只是从内存中读取)时,计算机"发出哔哔声"并且程序终止.将指针指定给字节(char*)时没问题.但是当我读到那台电脑发出哔哔声时.(x =*p;)
Windows xp,1GB + 128 MB RAM.我不知道我的eproom + eeproms.
我可以使用System()函数来使用OS命令来访问内存吗?你认识任何人吗?
如何获取变量的属性?
例:
int a = 5;
....
....
isConstant(a); //Prints "no!" if 'a' is not a constant at this time.
isRegister(a); //Prints "yes!" if 'a' is a register at this time.important.
isVolatile(a); //Prints "trusted" if 'a' is volatile.
isLocal(a); //If it is temporary.
isStatic(a); //Static?
Run Code Online (Sandbox Code Playgroud)
我只读过关于改变变量的常量但不改变其他变量的常量.
我正在使用Digital-Mars C++和VC++ 10编译器,我有masm32汇编程序.如何使用mm0 .... mm7 64位寄存器在eax,eabx 32位寄存器之间切换数据?我可以在c ++编译器asm {}或_asm {}中使用它们吗?
这样的东西可能有用:
mmTo32 eax,mm3
mmTo16 bx,mm6
mmTo8 cl,mm4
ToMM mm2,eax
Run Code Online (Sandbox Code Playgroud)
我用Google搜索但找不到足够的信息.
谢谢.
我正在学习如何使用Amd的app sdk和Khronos的Opencl 1.2头文件在C++中创建简单的opencl程序.我使用下面的例子,它正在工作.但是当我最后尝试.release()缓冲区时,我从编译器收到一条错误消息,说"无法访问受保护的成员".
int problemSize=1024;
const char * kernelDerlenecek =
"__kernel void Toplam(__global float * v1, __global float * v2)"
"{"
" int i = get_global_id(0);"
" v2[i]=v1[i];"
"}";
cl::Context altYapi(CL_DEVICE_TYPE_GPU);
cl::Program::Sources kaynaklar;
kaynaklar.push_back(std::make_pair(kernelDerlenecek,strlen(kernelDerlenecek)));
cl::Program program(altYapi,kaynaklar);
std::vector<cl::Device> aygitlar=altYapi.getInfo<CL_CONTEXT_DEVICES>();
program.build(aygitlar);
cl::Kernel kernel(program,"Toplam");
cl::CommandQueue cmdQ(altYapi,aygitlar[0]);
std::vector<cl_float> input;
std::generate_n (std::back_inserter ( input ) , problemSize , rand) ;
cl::Buffer inputBuffer(altYapi, CL_MEM_READ_ONLY|CL_MEM_COPY_HOST_PTR, sizeof(cl_float) * input.size(), &input[0]);
cl::Buffer outputBuffer(altYapi ,CL_MEM_WRITE_ONLY , sizeof(cl_float )* input.size()) ;
kernel.setArg(0,inputBuffer);
kernel.setArg(1,outputBuffer);
cl::NDRange Global(1024);
cl::NDRange Local(64);
cmdQ.enqueueNDRangeKernel(kernel,cl::NullRange,Global,Local);
float …Run Code Online (Sandbox Code Playgroud) 在处理未定义行为、自动向量化(对于数组结构)和可移植性(clang、gcc、msvc、icc)方面,以下测试中哪种方式是最优选的?
还有另一种方法可以进行相同的操作吗?
#include <iostream>
#include <cstring>
union trick1
{
float fvar;
int ivar;
};
struct trick2
{
float fvar;
int ivar()
{
int result;
std::memcpy(&result,&fvar,sizeof(float));
return result;
}
};
struct trick3
{
float fvar;
int ivar()
{
int result=0;
asm ("mov %0,%0"
: "=r" (result)
: "0" (fvar));
return result;
}
};
struct trick4
{
float fvar;
int ivar()
{
int result;
result = *reinterpret_cast<int*>(&fvar);
return result;
}
};
int main()
{
trick1 test1;
test1.fvar = 3.14f;
// 1078523331
std::cout<<test1.ivar<<std::endl; …Run Code Online (Sandbox Code Playgroud) 我刚刚开始学习汇编并制作一些自定义循环,用于使用C++的asm {}体交换两个变量,使用C-Free 5.0中的Digital-Mars编译器
启用-o(优化)
并得到了结果:
time of for-loop(cycles) 844
time of while-loop(cycles) 735
time of custom-loop-1(cycles) 562
time of custom-loop-2(cycles) 469
Run Code Online (Sandbox Code Playgroud)
我无法找到Digital-Mars编译器"asm output"选项进行比较.构建选项中没有其他优化选项.我应该改变我的编译器吗?如果是的话,哪一个?你能看一下下面的代码并告诉我为什么自定义循环更快?
这是循环的标准:
t1=clock();
for(int i=0;i<200000000;i++)
{
temp=a;//instruction 1
a=b;//instruction 2
b=temp;//3 instructions total
}
t2=clock();
printf("\n time of for-loop(increasing) %i \n",(t2-t1));
Run Code Online (Sandbox Code Playgroud)
这是标准的while循环:
t1=clock();
while(j<200000000)
{
temp=a;//again it is three instructions
a=b;
b=temp;
j++;
}
t2=clock();
printf("\n time of while-loop(cycles) %i \n",(t2-t1));
Run Code Online (Sandbox Code Playgroud)
这是我的自定义循环1:
t1=clock();
j=200000000;//setting the count
__asm
{
pushf //backup
push eax //backup
push ebx //backup
push ecx …Run Code Online (Sandbox Code Playgroud) 在线程中使用__asm {}代码是危险的吗?
例如,我在一个核心上运行了2个线程,在另一个核心上运行了main().如果一个线程在eax上写入并读取ebx而另一个线程读取eax并在ebx上写入会发生什么?如果我从main()读取这些寄存器会发生什么?
java收集垃圾签名的东西作为对象吗?
如果是,我可以告诉java以编程方式将它们引导到我的一个哈希表(接受对象吗?)?
我很好奇这个功能.我知道这 System.gc()是命令,但我怎么能实现第一个问题?我可以吗?
myTrashBin=System.gc().getObjectList(); //???
Run Code Online (Sandbox Code Playgroud)
如果没有,可能有一种方法可以通过自定义类创建此功能.
最后一个问题:我们如何覆盖System.gc()?
谢谢.
我是这个主题的新手,尝试了一些关于逃避本地最小值的不同事情.我使用随机学习率和动量,但对于一小部分的训练,它会卡住并且无法学习任何东西(有时候会在开始时,有时候是中间),即使是随机的起始权重和偏差.
我尝试了几种不同的设置来教授XOR,例如:
1)Faster learning but with a bigger chance of locally trapped.
(learns in less than 1200 iterations total)
2)Slow learning but with evading local minimum better.
(learns under 40k iterations total)
3)Very steep learning with ~%50 chance of pit-fall(learns under 300 iterations total)
Run Code Online (Sandbox Code Playgroud)
问题:是否有几名学生参加培训并选择最值得学习的学生?或者我们是否需要专注于为单一设置获得%100的成功率?
例:
3 students (XOR candidates) learning in parallel:
-First student is learning fast(learns first, tells others to stop to save cycles)
-Other two are slow learners to increase success rate of training
Run Code Online (Sandbox Code Playgroud) 我找不到有关设备集成/嵌入到cpu或使用系统ram或自己专用的gddr内存的查询命令?我可以对映射/取消映射与读/写进行基准测试,以得出结论,但该设备当时可能处于负载状态,并且表现不佳,这会给我正在使用的已经很复杂的负载平衡算法增加复杂性。
有没有简单的方法来检查gpu是否与cpu使用相同的内存,所以我可以选择直接映射/取消映射而不是读/写?
编辑:有CL_DEVICE_LOCAL_MEM_TYPE
CL_GLOBAL or CL_LOCAL
Run Code Online (Sandbox Code Playgroud)
这是否表明了整体性?