목록분류 전체보기 (277)
ecsimsw
네임 맹글링은 동일한 함수명을 갖는, 오버로딩한 함수들을 함수의 형태와 파라미터 정보로 명칭을 따로 부여하여 구별하기 위한 매커니즘이다. @
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b4H3V9/btqvC6KtCKJ/XAcYEIvhn4BUD7agOMfko0/img.png)
- storage class (기억 부류)는 변수의 종류에 따라서 초기화나 파괴 시기, 얼마나 지속되어야하는지를 결정하는 역할을 한다.
정적 스코프 : 컴파일 시에 결정되는 가장 가까운 바깥쪽의 스코프 변수 값으로 처리 동적 스코프 : 컴파일 시 자료형 체크 불가능 : 대개 인터프리티드 언어에서 사용되는 방식 : 스택을 이용해서 호출되는 스코프들을 쌓고 가장 가까운 것의 변수 값이 바인딩 int count = 10; void foo2(){ print(count); } void foo1(){ int count = 20; foo2(); } main(){ foo1(); } // 정적 스코핑 : foo2의 출력은 count = 10 // 동적 스코핑 : foo2의 출력은 count = 20
- Binding Times : 언어 설계 (language design time) : 연산자와 연산 바인딩 : 언어 구현 (language implementation time) : 데이터 타입과 데이터 값 바인딩 : 프로그램 작성 (program writing time) : 알고리즘, 데이터 구조, 모듈 바인딩 : 컴파일 (compile time) : 변수와 데이터 유형 바인딩 : 링크 (link time) : 메모리 내의 프로그램 전체 라이브러리, 모듈 확정 : 로드 (load time) : 물리적 주소 선택 : 실행 (run time) : 변수에 메모리가 위치한 값 바인딩
constructor ary = new int*[count_rows]; for (int i = 0; i
/// matmul_op.cc #endif // GOOGLE_CUDA template class MatMulOp : public OpKernel { public: explicit MatMulOp(OpKernelConstruction* ctx) : OpKernel(ctx), algorithms_set_already_(false) { OP_REQUIRES_OK(ctx, ctx->GetAttr("transpose_a", &transpose_a_)); OP_REQUIRES_OK(ctx, ctx->GetAttr("transpose_b", &transpose_b_)); LaunchMatMul::GetBlasGemmAlgorithm( ctx, &algorithms_, &algorithms_set_already_); ..
/// matmul_op.cc 1468 REGISTER_KERNEL_BUILDER #if defined(INTEL_MKL) // math kernel library TF_CALL_float(REGISTER_CPU_EIGEN); #else TF_CALL_float(REGISTER_CPU); #define REGISTER_CPU_EIGEN(T) \ REGISTER_KERNEL_BUILDER( \ Name("MatMul").Device(DEVICE_CPU).TypeConstraint("T").Label("eigen"), \ MatMulOp); #define REGISTER_CPU(T) \ REGISTER_KERNEL_BUILDER( \ Name("MatMul").Device(DEVICE_CPU).TypeCon..